首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何让Grunt-Contrib copy相对于给定源路径复制文件/目录

如何让Grunt-Contrib copy相对于给定源路径复制文件/目录
EN

Stack Overflow用户
提问于 2014-03-28 03:57:15
回答 1查看 16.1K关注 0票数 17

第一次使用这个任务,我尝试实现的目标如下:

将所有目录/文件从src/js/bower_components/*复制到build/assets/js/vendor/

我尝试过使用cwd属性,但使用它时根本不起作用。我将其设置为:src/js/bower_components/

从源

代码语言:javascript
复制
.
├── Gruntfile
└── src
    └── js
        └── bower_components
            └── jquery

我现在得到:

代码语言:javascript
复制
.
├── Gruntfile
└── build
    └── assets
        └── js
            └── vendor
                src
                └── js
                    └── bower_components
                        └── jquery

我想要的是

代码语言:javascript
复制
.
├── Gruntfile
└── build
    └── assets
        └── js
            └── vendor
                └──jquery

这是我目前的任务

代码语言:javascript
复制
copy: {
  main: {
    src: 'src/js/bower_components/*',
    dest: 'build/assets/js/vendor/',
    expand: true,
  }
},

谢谢你的帮助

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-28 06:45:07

我已经用tree设置了一个示例项目,如下所示:

代码语言:javascript
复制
.
├── Gruntfile.js
├── package.json
└── src
    └── js
        └── foo.js

使用下面的Gruntfile文件:

代码语言:javascript
复制
module.exports = function(grunt) {
  require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);

  grunt.initConfig({
    copy          : {
      foo : {
        files : [
          {
            expand : true,
            dest   : 'dist',
            cwd    : 'src',
            src    : [
              '**/*.js'
            ]
          }
        ]
      }
    }
  });

  grunt.registerTask('build', function(target) {
    grunt.task.run('copy');
  });

};

这给了我这样的结构:

代码语言:javascript
复制
.
├── Gruntfile.js
├── dist
│   └── js
│       └── foo.js
├── package.json
└── src
    └── js
        └── foo.js

当我将cwd更改为Gruntfile文件时:

代码语言:javascript
复制
module.exports = function(grunt) {
  require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);

  grunt.initConfig({
    copy          : {
      foo : {
        files : [
          {
            expand : true,
            dest   : 'dist',
            cwd    : 'src/js',
            src    : [
              '**/*.js'
            ]
          }
        ]
      }
    }
  });

  grunt.registerTask('build', function(target) {
    grunt.task.run('copy');
  });

};

我得到了这个dir结构:

代码语言:javascript
复制
.
├── Gruntfile.js
├── dist
│   └── foo.js
├── package.json
└── src
    └── js
        └── foo.js

所以看起来cwd做了你需要的事情。也许您在将cwd设置为src/js/bower_components时将src留在了src/js/bower_components/*上?在这种情况下,src应该读取类似**/*.js的内容,但这取决于您真正需要的内容。

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22697919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档