对于不同的优化选项,grunt中有多个requirejs任务

时间:2013-11-05 19:23:56

标签: requirejs gruntjs r.js grunt-contrib-requirejs

我使用r.js将SPA中的所有js代码拼凑成1个文件。我使用grunt的`grunt-contrib-requirejs'任务,其中包括:

requirejs: {
  compile: {
    options: {
      name: 'app',
      out: 'build/js/app.js',
      baseUrl: 'app',
      mainConfigFile: 'config/main.js',
      preserveLicenseComments: true,
      optimize: "none"
    }
  }
}

我还使用构建任务将构建文件夹压缩成zip文件,以便发送给我们公司的变更管理人员。

我想有两个requirejs任务 - 一个uglifies(用于发送到CM)和一个没有(在开发期间)。这可能吗?我尝试用不同的名字创建一个新任务,咕噜咕噜地叫着我......应该很简单。这可能吗?有没有理由不这样做?

提前致谢!

1 个答案:

答案 0 :(得分:7)

实际上这很简单:

requirejs: {
    compile: {
        options: {
            ...
            optimize: "none"
        }
    },
    compileForProduction: {
        options: {
            ...
            optimize: "uglify2"
        }
    }
}

(选项与您的选项相同,两者之间的任何差异都是必需的,例如optimize

使用以下命令运行:

grunt requirejs:compileForProduction

Gruntfile.js

grunt.registerTask("prod", ["requirejs:compileForProduction"]);

grunt prod