我想使用grunt从终端获取const名称,并在uglify中使用它。这就是我想要发生的事情:
uglify: {
options: {
sourceMap: true,
compress: {
global_defs: {
<myConst>: false
}
}
},
ugly: {
src: 'beautiful.js',
dest: 'ugly.js'
}
}
我用:
grunt --target = blabla
传递参数,所以myConst应该是终端的输入(在本例中为blabla)。我似乎无法找到一种方法来代替myConst(在代码中)。是否有可能,我该怎么做?
答案 0 :(得分:1)
由于运行grunt
会在process.argv中为您提供以下命令行参数:
你不能简单地做一些事情:
module.exports = function(grunt) {
var compress_defs={},
args=process.argv.slice(2); // take all command line arguments skipping first two
// scan command line arguments for "--target=SOMETHING"
args.forEach(function(arg){
if(arg.match(/--target=(\S+)/)) { // found our --target argument
compress_defs[RegExp.$1]=false;
}
});
grunt.initConfig({
uglify: {
options: {
sourceMap: true,
compress: {
global_defs: compress_defs
}
},
ugly: {
src: 'beautiful.js',
dest: 'ugly.js'
}
});
};
或者更好的是,使用像minimist这样的命令行处理库,而不是滚动自己。