用Grunt和Requirejs构建

时间:2014-05-29 17:13:09

标签: requirejs grunt-contrib-requirejs

我正在使用grunt-contrib-requirejs创建一个使用requirejs构建javascript项目的繁琐任务

https://github.com/gruntjs/grunt-contrib-requirejs

这是配置:

requirejs:
      compile:
        options:
          #appDir: './'
          baseUrl: "client"
          mainConfigFile: "client/main.js"
          name: "main"
          out: "build/main.js"
          wrap:
            start: ""
            end: ""

main.js文件需要子目录中的其他2个文件。通过此任务不会抛出错误,生成的构建文件不会运行浏览器。由于在构建文件中仍存在require调用,因此这些文件似乎是连接在一起的。我希望require调用的js文件替换require调用,然后进行优化。我怎么能实现呢?

PS:上面的配置是用coffeescript编写的。

1 个答案:

答案 0 :(得分:1)

如果您希望已编译的javascript文件不包含require()define()个调用,则可以使用AMDclean npm包并简单地将其添加到您的选项对象中:

onModuleBundleComplete: function (data) {
  var fs = require('fs'),
    amdclean = require('amdclean'),
    outputFile = data.path;
  fs.writeFileSync(outputFile, amdclean.clean({
    'filePath': outputFile
  }));
}