grunt uglify无法在父目录中找到我的文件

时间:2014-03-28 21:38:36

标签: node.js gruntjs grunt-contrib-uglify

与我编写的所有其他节点项目不同,这个项目需要节点服务器的文件夹不是root用户。这是当前的文件夹层次结构:

- Root/
  - build/
  - css/
  - im/
  - js/
  - nodeserver/   <-- gruntfile and package are here

GruntFile.jspackage.jsonserver.js都位于nodeserver/

这是我的GruntFile:

module.exports = function(grunt) {

    // Project configuration.
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        uglify: {
            files: {
                '../build/all.min.js':['../js/config.js']
            },
            options: {
                banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
                report: true
            }
        }
    });

    // Load the plugin that provides the "uglify" task.
    grunt.loadNpmTasks('grunt-contrib-uglify');

    // Default task(s).
    grunt.registerTask('default', ['uglify']);

};

当我运行grunt时,它无法找到我指定的文件。这是回复:

Running "uglify:files" (uglify) task
------------------------------------
Verifying property uglify.files exists in config...OK
File: [no files]
Options: banner="/*! demo-webservice 2014-03-28 */\n", footer="", compress={"warnings":false}, mangle={}, beautify=false, report

为什么它不能看到我的js文件?

1 个答案:

答案 0 :(得分:0)

files: {}中包裹my_target: {}解决了我的问题。

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
        my_target: {
            files: {
                '../build/all.min.js':['../js/config.js']
            }
        },
        options: {
            banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n',
            report: true
        }
    }
});

^ ---该initConfig的新版本。

还应该注意my_target可以是任何东西,并且默认使用,因为它是唯一提供的uglify配置文件。如果我提供了多个配置文件,即&#34; test:{},prod:{}等等:{}&#34;,那么我会按照以下方式在任务之后引用它们:{{1 },uglify:testuglify:prod