grunt-copy怎么复制某个文件夹所有文件
copy: {
html: {
src: 'index/*', // index/*.html 或者 index/**都不行
dest: 'dist/'
}
},
有两个问题:
① 我
index
里有多个文件,我想复制到
dist
下,结果只能复制第一个过去(命令行里显示的是 复制成功了多个)
② 我想复制过去不把
index
这个文件夹也带过去,只把各个文件复制到
dist
目录下,而不是复制到
dist/index/
目录下
请问怎么解决
灼眼的忧郁
9 years, 10 months ago
Answers
copy: {
html: {
expand: true,
cwd: 'index',//切换到 index 目录下
src: '**/*',//该目录下所有文件
dest: 'dist/'//目标目录
}
},
楼主所采纳的这个人的答案是不正确的.
错误的地方在于,
src
中又一次写了
index
这个路径,所以 最终复制的路径是
index/index/
的所有文件.
而不是楼主所提的
index/
下的所有文件.
证明:
gruntfile.js
module.exports = function(grunt) {
grunt.file.defaultEncoding = 'utf8';
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
copy: {
html: {
files: [{
expand: true,
cwd: 'index',
src: ['index/**'],
dest: 'dest/'
}]
}
}
});
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.registerTask('default', ['copy']);
};
package.json
{
"name": "copy test",
"version": "0.0.1",
"description": "test",
"author": "xqin",
"devDependencies": {
"grunt": "~0.4.1",
"grunt-contrib-copy": "^0.7.0"
}
}
目录结构:
T:\test>tree . /f
卷 的文件夹 PATH 列表
卷序列号为 ABCD-5678
T:\TEST
│ gruntfile.js
│ package.json
│
├─dest
└─index
│ 1.html
│ 2.js
│
├─123
├─23424
│ 234.html
│
└─index
14444.html
执行
grunt
命令之后的结果:
T:\test>tree . /f
卷 的文件夹 PATH 列表
卷序列号为 ABCD-5678
T:\TEST
│ gruntfile.js
│ package.json
│
├─dest
│ └─index
│ 14444.html
│
└─index
│ 1.html
│ 2.js
│
├─123
├─23424
│ 234.html
│
└─index
14444.html
可以看到的, 楼主所采纳的这个回复, 并没有达到楼主的要求.
将
src: ['index/**'],
改为
src: '**/*',
后再将执行
grunt
的结果(执行命令前将
dest
目录中的内容清空).
T:\test>tree . /f
卷 的文件夹 PATH 列表
卷序列号为 ABCD-5678
T:\TEST
│ gruntfile.js
│ package.json
│
├─dest
│ │ 1.html
│ │ 2.js
│ │
│ ├─123
│ ├─23424
│ │ 234.html
│ │
│ └─index
│ 14444.html
│
└─index
│ 1.html
│ 2.js
│
├─123
├─23424
│ 234.html
│
└─index
14444.html
这样的结果, 才是楼主需要的吧.
以上
tree
命令的执行结果中已将node_modules
这个目录排除.
黑暗执行厅
answered 9 years, 10 months ago