Grunt Uglify任务失败

6
在运行grunt时,我得到了以下错误:
警告:无法写入“client / dist / js / build.js”文件(错误代码:未定义)。使用--force继续。
我的Gruntfile.js中uglify的配置如下:
uglify: {
      build: {
        src: ['client/src/js/*.js'],
        dest:['client/dist/js/build.js']
      }
    }

我正在使用grunt-contrib-uglify

有没有想法为什么会发生这种情况?

2个回答

15

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'

测试可行示例,而无需两次编写文件:

'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'
    ]);
};

注意'<%= 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.

1
+1 这是一个很棒的解决方案。除此之外,我已经生成了我的 package.json 文件,并在其中包含了我的 img、js 和 css 路径,这样我就可以使用 <%= pkg.path.js %> 等方式来引用它们。 - Larry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接