6

grunt を実行すると、次のエラーが表示されます。

警告: 「client/dist/js/build.js」ファイルを書き込めません (エラー コード: 未定義)。--force を使用して続行します。

my の uglify の設定Gruntfile.js:

uglify: {
      build: {
        src: ['client/src/js/*.js'],
        dest:['client/dist/js/build.js']
      }
    }

を使用してgrunt-contrib-uglifyいます。

なぜこれが起こっているのですか?

4

2 に答える 2

15

Grunt バージョンが 0.4.0 であると仮定すると、最新の構文を使用していないことがわかります ( https://github.com/gruntjs/grunt-contrib-uglify#usage-examplesを参照)。

試す

uglify: {
    build: {
        files: {
            'client/dist/js/build.js': ['client/src/js/*.js']
        }
    }
}

また、ワイルドカードが適切に処理されているかどうかもわかりません。

于 2013-03-12T10:11:30.790 に答える
15

これが解決済みとしてマークされていることは知っていますが、ファイルを2回書き込むことなく他のコマンドで簡単に使用できるため、同様の質問からのこの回答を引き続き好みます。

要するに、答えは言う

//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'

ファイルを2回書き込まずにテストされた動作例:

'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.
于 2013-07-13T04:29:22.350 に答える