我有以下gruntfile.js。一起使用grunt-contrib-concat和grunt-contrib-uglify。
这是对@ Dynamic Mapping and Concat with Grunt Uglify
的发展的延伸我在banner
任务中使用uglify
来引用在concat
任务中创建的文件。
module.exports = function(grunt){
// Configure task(s)
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
// setup concats
concat: {
options: {
separator: ';\n',
},
dev: {
files: [{
src: [
'sports.js',
'salon.js',
'offRoad.js',
],
dest: 'src/js/concat/car-dev.js'
}],
},
},
// setup uglify task
// this will produce a car js file (which includes car-dev.js) for every car js file located within scr/js/cars/
uglify: {
// dev - use in development mode, global overrides section
dev: {
options: {
// include concat dev.js
banner: grunt.file.read('src/js/concat/car-dev.js'),
beautify: true,
mangle: false,
compress: false,
preserveComments: 'all'
},
files: [{
expand: true,
cwd: 'src/js/cars/',
src: '*.js',
dest: 'javascript/dev',
ext: '.dev.js',
extDot: 'first'
}],
},
},
});
// Load the plugins
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-sass');
// Register task(s)
grunt.registerTask('default',
'concat:dev'
'uglify:dev'
]);
};
我的问题是,如果src/js/concat/car-dev.js
不存在,我会收到以下错误:
Error: Unable to read "src/js/concat/car-dev.js" file <Error code: ENOENT).
如果我创建一个空文件@src/js/concat/car-dev.js
,grunt
命令可以正常工作。
然而,这并不总是可行的。我希望uglify引用car-dev.js
文件,即使它不存在。我正在寻找的是引用grunt->concat->dev->files->dest
文件。
我尝试添加以下内容
banner: grunt.file.read(grunt.concat.dev.files.dest),
和
banner: grunt.concat.dev.files.dest
但是没有工作。这可能吗?
这不是任务依赖性问题 - 在运行任何任务之前会抛出错误,因为banner:src/js/concat/car-dev.js
不存在。
任何帮助 - 非常感谢。