运行grunt时,我收到以下错误:
警告:无法写入"client/dist/js/build.js"文件(错误代码:undefined).使用--force继续.
uglify的配置在我的Gruntfile.js:
uglify: {
build: {
src: ['client/src/js/*.js'],
dest:['client/dist/js/build.js']
}
}
Run Code Online (Sandbox Code Playgroud)
我正在使用grunt-contrib-uglify.
任何想法为什么会这样?
raf*_*nia 15
假设您的Grunt版本是0.4.0,AFAIK您没有使用最新的语法(请参阅https://github.com/gruntjs/grunt-contrib-uglify#usage-examples).
尝试
uglify: {
build: {
files: {
'client/dist/js/build.js': ['client/src/js/*.js']
}
}
}
Run Code Online (Sandbox Code Playgroud)
我也不确定是否正确处理了通配符.
Gab*_*oux 15
我知道这标记为已解决,但我仍然喜欢这个类似问题的答案,因为您可以轻松地将文件再次用于其他命令,而无需再写两次.
简而言之,答案说
//Does not work
src: ['client/src/js/*.js'],
dest: ['client/dist/js/build.js']
//Works
src: ['client/src/js/*.js'],
dest: 'client/dist/js/build.js'
Run Code Online (Sandbox Code Playgroud)
测试工作示例,无需编写文件两次:
'use strict';
module.exports = function(grunt) {
grunt.initConfig({
uglify: {
build: {
src: ['client/src/js/*.js'],
dest: 'client/dist/js/build.js'
}
},
watch: {
js: {
files: '<%= uglify.build.src %>',
tasks: ['uglify']
}
}
});
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('default', [
'uglify',
]);
grunt.registerTask('dev', [
'watch'
]);
};
Run Code Online (Sandbox Code Playgroud)
请注意,这'<%= uglify.build.src %>'非常方便;)
执行
$ grunt watch
Running "watch" task
Waiting...OK
>> File "client/src/js/hello.js" changed.
Running "uglify:build" (uglify) task
File "client/dist/js/build.js" created.
Uncompressed size: 15 bytes.
Compressed size: 32 bytes gzipped (15 bytes minified).
Done, without errors.
Run Code Online (Sandbox Code Playgroud)