Строительство с Grunt и Requirejs
Я создаю задачу grunt для создания проекта javascript с помощью requirejs с использованием grunt-contrib-requirejs
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 все еще существуют во встроенном файле. Я ожидаю, что js-файлы, вызываемые через require, заменят требуемые вызовы, а затем будут оптимизированы. как я могу этого достичь?
PS: Конфиг выше написан в coffeescript.
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
}));
}