[英]Grunt copy plugin not able to configure
我是grunt的新手,对于我的项目,我正在使用grunt-contrib-copy插件。我的文件夹结构是:
module.exports = function(grunt){
const sass = require('node-sass');
require('load-grunt-tasks')(grunt);
grunt.initConfig({
sass: {
options: {
implementation: sass,
},
dist: {
files: [{
expand: true,
cwd: 'sass',
src: ['*.scss'],
dest: 'assets/css',
ext: '.css'
}]
}
},
cssmin: {
target: {
files: [{
expand: true,
cwd: 'assets/css',
src: ['*.css', '!*.min.css'],
dest: 'build/assets/css',
ext: '.min.css'
}]
}
},
copy:{
html:{
files:[{
expand:true,
dot:true,
cwd:'components',
src:['**/*.html'],
dest:'build/'
}]
}
}
});
grunt.registerTask('default', ['sass','cssmin','copy']);
}
我想将index.html和components文件夹复制到build文件夹,但是我无法对其进行配置。 我能够复制index.html文件或仅复制组件文件夹,但无法复制两者。 有人可以帮我吗 这将有极大的帮助。 提前谢谢您。
有几种方法可以实现此目的。
将copy
任务配置为以下之一。 您可能只需要遵循解决方案A即可 。
注意: 解决方案A和B都达到相同的结果。 解决方案C的结果略有不同:
解决方案A
使用一个名为html
目标,您可以执行以下操作:
copy:{
html:{
files:[{
src:['components/**', 'index.html'],
dest:'build/'
}]
}
}
注意:在第一个读取'components/**'
的src
数组中,使用了Globbing模式 (即**
部分)。 这意味着包括了components
文件夹中的所有项目,并包括了复制时所有子文件夹,这些子文件夹有很多层。
解决方案B
或者,使用两个目标; 您可以执行以下操作:一个名为html
名称为另一个html
components
copy:{
html:{
files:[{
src:'index.html',
dest:'build/'
}]
},
components:{
files:[{
src:'components/**',
dest:'build/'
}]
}
}
这与解决方案A非常相似,但是它使用两个目标而不是一个目标,这可能更合适,因为目标名称实际上指示了它们正在复制的内容。
解决方案C
但是,如果您实际上不希望复制components
文件夹来build
,而是只希望复制components
文件夹的内容,则可以执行以下操作:
copy:{
html:{
files:[{
src:'index.html',
dest:'build/'
}]
},
components:{
files:[{
expand:true,
cwd: 'components',
src:'**',
dest:'build/'
}]
}
}
注意:有关其他信息,请参阅grunt文档的“ 文件”部分:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.