0

我正在创建一个 grunt 任务,用于使用 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编写的。

4

1 回答 1

1

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

onModuleBundleComplete: function (data) {
  var fs = require('fs'),
    amdclean = require('amdclean'),
    outputFile = data.path;
  fs.writeFileSync(outputFile, amdclean.clean({
    'filePath': outputFile
  }));
}
于 2014-05-29T19:30:55.417 回答