我正在使用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编写的。
答案 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
}));
}