我正在使用grunt,我想在创建生产分发时复制我的bower依赖项
这些依赖项已存在于./components
中我在index.html里面生成一个生产目录,并希望只复制bower.json文件中的依赖项。
我认为这就像从deps生成列表一样简单:
prodComponents = Object.keys(grunt.file.readJSON('./bower.json').dependencies)
(从简单的console.log(prodComponents)生成
[ 'requirejs',
'requirejs-text',
'jquery',
'underscore-amd',
'backbone-amd',
'backbone.wreqr',
'backbone.babysitter',
'marionette' ]
然后只需复制匹配的文件:
copy:
deps:
files: [
expand: true
cwd: './components'
src: ['./<%= prodComponents %>/*']
dest: './dev/components'
]
这可以,但复制所有组件。即我的文件规范失败
Running "copy:deps" (copy) task
Created 15 directories
如果我删除./然后它失败了:
Warning: Unable to read "components/Applications" file (Error code: ENOENT). Use --force to continue.
无法帮助,但我想我要么过于聪明,要么差点就这样。
我对文件规范的规范做错了什么?
由于
答案 0 :(得分:2)
我认为你很亲密。我会保存带有应用于prodComponents
:
prodComponents = Object.keys(grunt.file.readJSON('./bower.json').dependencies).map(
function(prodComponent) {
return prodComponent + "/**/*";
}
);
因此prodComponents
将包含:
["requirejs/**/*",
"requirejs-text/**/*",
"jquery/**/*",
"underscore-amd/**/*",
"backbone-amd/**/*",
"backbone.wreqr/**/*",
"backbone.babysitter/**/*",
"marionette/**/*" ]
copy
配置为:
copy:
deps:
files: [
expand: true
cwd: 'components'
src: '<%= prodComponents %>'
dest: 'dev/components'
]
请注意,为了能够以这种方式在模板中使用prodComponents
,需要在grunt config中设置。