我正在使用Grunt 0.4.1和Grunt-contrib-copy版本0.4.1.我正在尝试将图像从src目录复制到分发目录,但它正在复制完整的src目录而不是仅复制images目录的内容.换句话说,这是创建dist/images/src/images/...,而我希望结果只是dist/images/...
这是我的复制任务:
copy: {
images: {
files: {
'dist/images/': 'src/images/**/*'
}
}
}
Run Code Online (Sandbox Code Playgroud)
它的运行方式如下:
// Default task.
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-less');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.registerTask('default', ['less', 'concat', 'uglify', 'cssmin', 'copy']);
Run Code Online (Sandbox Code Playgroud)
如何获取它以便只将src/images的子目录复制到dist/images中?
这些文件已经过压缩,只需在构建期间复制到目标.
Rob*_*ggs 19
实际修复我的问题的是指定我使用"cwd"指令复制的根目录结构,然后是与上面完全相同的src.刚回来发布这个,看到了基本上我想出的相同解决方案.这对我有用:
copy: {
images: {
files: [
{
expand: true,
cwd: 'src/images/',
src: ['**/*.{png,jpg,svg}'],
dest:'dist/images/'
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
"cwd"属性允许您定义要从中复制的源的根.这不会包含在复制文件的路径中.所以在我的情况下,通过将"cwd"定义为"src/images",我可以将源定义为"**/*.{png,jpg,svg}"这将找到源图像中的所有子目录目录,只复制具有我提供的扩展名的文件.这给了我想要的结果:dist/images/...包含所有子目录.
不使用"cwd",grunt-contrib-copy将整个源树结构复制到目标中."cwd"属性允许您从一个文件结构中挑选子目录和文件,并将它们复制到另一个文件结构中.
您需要指定flatten删除目录树的选项。
copy: {
images: {
expand: true,
cwd: 'src/images/',
src: ['**/*'],
dest: 'dist/images/',
filter: 'isFile',
flatten: true
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5363 次 |
| 最近记录: |