Удаление require и define с помощью amdclean

#requirejs

#requirejs

Вопрос:

Я пытаюсь удалить вызовы require и define с помощью amdclean, чтобы я мог вызывать свой js-файл, не вызывая requirejs. Кроме того, я мог бы запустить компилятор закрытия в проекте js.

Мой js-файл отлично компилируется с конфигурацией requirejs grunt:

 requirejs:
      build:
        options:
          mainConfigFile : "client/main.js"
          baseUrl : "client"
          name: "main"
          out: "build/main.js"
          removeCombined: true
          findNestedDependencies: true
  

Однако, когда я добавляю к нему amdclean, он фактически не удаляет вызовы require и define из кода. Вот конфигурация:

 requirejs:
      build:
        options:
          mainConfigFile : "client/main.js"
          baseUrl : "client"
          name: "main"
          out: "build/main.js"
          removeCombined: true
          findNestedDependencies: true
          onModuleBundleComplete: (data) ->
            fs = module.require('fs')
            amdclean = module.require('amdclean')
            #console.log('data.path = '   data.path)
            inputFile = data.path
            outputFile = './build/clean.js'
            cleanedCode = amdclean.clean(
              'filePath': inputFile
            )
            fs.writeFileSync(outputFile, cleanedCode)
  

Вот URL-адрес amdclean:

http://gregfranko.com/amdclean/

Я все еще могу использовать вывод amdclean, если я использую его с requirejs, но не как независимый скрипт. Пожалуйста, помогите мне это исправить.

Ответ №1:

Вы не можете использовать AMDclean без какой-либо логики упорядочения зависимостей (которая Require.js оптимизатор предоставляет). Вам не обязательно использовать Require.js оптимизатор, но вам нужно заменить его какой-нибудь библиотекой, предоставляющей аналогичную функциональность.