假设 src 目录下有以下文件:
src/
├── a.js
└── c.test.js
然后使用以下 grunt 配置文件来把 src 里的 js 文件复制到 dest 目录,把扩展名改为 -min.js
。
grunt.initConfig({
copy: {
main: {
expand: true,
cwd: 'src/',
src: '*.js',
dest: 'dest/',
filter: 'isFile',
ext: '-min.js'
}
}
});
复制后的文件将是:
dest/
├── a-min.js
└── c-min.js
可以看到,c.test.js
变成了 c-min.js
而不是预期的 c.test-min.js
。
这是关于扩展名的认定的问题。grunt 支持把从第一个点号(first
)后面的是扩展名或把最后一个点号(last
)后的是扩展名,默认是 first
,配置项是 extDot
。
故把配置修改为:
grunt.initConfig({
copy: {
main: {
expand: true,
cwd: 'src/',
src: '*',
dest: 'dest/',
filter: 'isFile',
ext: '-min.js',
extDot: 'last'
}
}
});
这样构建后的文件将是:
dest
├── a-min.js
└── c.test-min.js
Done!