使用amdclean删除require和define

时间:2014-07-05 11:36:50

标签: requirejs

我正在尝试使用amdclean删除require和define调用,以便我可以调用我的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)

这是amdclean网址:

http://gregfranko.com/amdclean/

如果我将它与requirejs一起使用,我仍然可以使用amdclean输出,但不是作为一个独立的脚本。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

如果没有某种依赖性排序逻辑(Require.js优化器提供),则不能使用AMDclean。您不一定要使用Require.js优化器,但需要将其替换为提供类似功能的库。