在一个继承的聚合物1.0项目中,安装程序涉及一个gruntfile,除其他外,调用bower来安装必要的资源。但是,在后面的步骤中,无法找到某些文件,并且grunt任务失败。我是崭露头角和咕噜声的新手,感觉有些失落。
无法找到的相关文件是myproject\components\polymer\polymer-mini.html
,但我通过手动复制文件找到了类似的位置。
我的第一步是隔离凉亭安装任务,并在它工作时观察它。这是gruntfile.js
中的配置:
bower: {
install: {
options: {
targetDir: './components',
layout: 'byType',
install: true,
verbose: false,
cleanTargetDir: true,
cleanBowerDir: true,
bowerOptions: {}
}
}
}
通过在详细模式下单步执行后暂停执行,我在安装过程中发现了以下内容:
myproject/components
文件夹(如果存在)将被删除myproject/bower_components
文件夹myproject/components
myproject/bower_components
比较myproject/bower_components
和myproject/components
的内容会发现原始文件夹中存在的许多文件在目标文件夹中丢失。例如,提到的myproject/components/polymer
只包含polymer.html
- 但myproject/bower_components/polymer
中有七个文件,包括丢失的polymer-mini.html
。
显然,有些东西可以过滤复制到targetDir的内容以及没有内容的内容。
我可以以任何方式影响这一点,或者这个设置是否正确,因为它现在?我见过grunt-bower-task and Polymer但不能做很多 - 除了在安装bower_components
之后接受的解决方案显然是手工复制了所有内容。当然,必须有更好的方法吗?
答案 0 :(得分:1)
我最终通过调用copy
任务配置来独立于凉亭任务复制文件:
copy: {
main: {
files: [
{ expand: true, cwd: 'bower_components/', src: ['**'], dest: 'components/', filter: 'isFile' }, // bower components
]
}
}
当然,在这种情况下,必须重新配置凉亭任务,不要删除要复制的凉亭目录。
bower: {
install: {
options: {
targetDir: './components',
layout: 'byType',
install: true,
verbose: false,
cleanTargetDir: true,
cleanBowerDir: false,
bowerOptions: {}
}
}
}
这不是我所希望的,但在此期间它完成了工作。