我是新来的,在使用插件grunt-contrib-uglify-es
时我不知道如何定义路径。
这是我的文件夹结构:
.
├── controllers
├── models
├── public
│ ├── build
│ │ ├─ foo.min.js
│ │ └─ x.min.js
│ ├── css
│ ├── font
│ └── js
│ ├─ foo.js
│ └─ x.js
├── routes
├── tests
├── utils
└── views
这是我的艰苦任务:
// take all js file in public/js/ and put them in public/build/
uglify: {
options: {
mangle: false,
banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
},
build: {
files: [{
expand: true,
src: 'public/js/*.js',
dest: 'public/build/',
rename: function (dst, src) {
console.log(dst);
console.log(src);
return src;
}
}]
}
}
当我运行grunt时,它将创建文件到public/js
中并覆盖现有文件。我不明白为什么。
我也尝试过这个:
expand: true,
src: 'js/*.js',
dest: 'build/',
cwd: 'public/',
现在,它在根目录下创建一个新文件夹js
,其中包含所有文件。
我想压缩.js
中的每个public/js/
文件,然后将其放入public/build/
我显然迷路了,你能帮我吗?
答案 0 :(得分:0)
为了满足您的要求,在building the files object dynamically时您需要利用;
{
"name": "myApp",
"version": "1.0.0",
"sideEffects": false,
"scripts": {
"ng": "ng",
"test": "ng test",
...
},
}
选项-如下所述:
cwd
所有cwd
匹配项都相对于(但不包括)此路径。
src
函数,描述为:
rename
嵌入自定义函数,该函数返回包含新目的地和文件名的字符串。每个匹配的rename
文件都会调用此函数(扩展名重命名和拼合后)。
Gruntfile:
以下配置将满足您的期望结果。
src