Строительство с 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
  }));
}
Другие вопросы по тегам