web-dev-qa-db-ja.com

Grunt-Contrib-Copyを取得して、指定されたソースパスに関連するファイル/ディレクトリをコピーする方法

このタスクを初めて使用し、私が達成しようとしていることは次のとおりです。

すべてのディレクトリ/ファイルをsrc/js/bower_components/*からbuild/assets/js/vendor/にコピーします

cwdプロパティを使用しようとしましたが、使用してもまったく機能しません。src/js/bower_components/に設定しました。

srcから

.
├── Gruntfile
└── src
    └── js
        └── bower_components
            └── jquery

私は現在取得しています:

.
├── Gruntfile
└── build
    └── assets
        └── js
            └── vendor
                src
                └── js
                    └── bower_components
                        └── jquery

欲しいもの

.
├── Gruntfile
└── build
    └── assets
        └── js
            └── vendor
                └──jquery

これが私の現在のうなり声のタスクです

copy: {
  main: {
    src: 'src/js/bower_components/*',
    dest: 'build/assets/js/vendor/',
    expand: true,
  }
},

助けてくれてありがとう

17
micahblu

次のようなツリーを使用してサンプルプロジェクトを設定しました。

.
├── Gruntfile.js
├── package.json
└── src
    └── js
        └── foo.js

以下のGruntfileを使用します。

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');
  });

};

これは私にこの構造を与えました:

.
├── Gruntfile.js
├── dist
│   └── js
│       └── foo.js
├── package.json
└── src
    └── js
        └── foo.js

Gruntfileが次のように読み取るようにcwdを変更したとき:

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構造を取得しました:

.
├── Gruntfile.js
├── dist
│   └── foo.js
├── package.json
└── src
    └── js
        └── foo.js

したがって、cwdは必要なことを実行しているようです。 srcsrc/js/bower_components/*に設定するときに、cwdsrc/js/bower_componentsに残したのではないでしょうか。その場合、src**/*.jsのようになりますが、実際に必要なものによって異なります。

20
Kosmotaur