错误:在Grunt uglify任务中ENOENT

时间:2016-10-05 16:00:52

标签: javascript npm gruntjs grunt-contrib-uglify grunt-contrib-concat

我有以下gruntfile.js。一起使用grunt-contrib-concatgrunt-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.jsgrunt命令可以正常工作。

然而,这并不总是可行的。我希望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不存在。

任何帮助 - 非常感谢。

0 个答案:

没有答案