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

ten*_*gen 2 requirejs gruntjs r.js grunt-contrib-requirejs

我使用r.js将jsSPA中的所有代码拼凑成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"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

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

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

提前致谢!

Nik*_*los 7

其实这很简单:

requirejs: {
    compile: {
        options: {
            ...
            optimize: "none"
        }
    },
    compileForProduction: {
        options: {
            ...
            optimize: "uglify2"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

运行它:

grunt requirejs:compileForProduction
Run Code Online (Sandbox Code Playgroud)

或者在Gruntfile.js:

grunt.registerTask("prod", ["requirejs:compileForProduction"]);
Run Code Online (Sandbox Code Playgroud)

和:

grunt prod
Run Code Online (Sandbox Code Playgroud)