0

grunt-contrib-requirejs を使用して、requirejs で JavaScript プロジェクトをビルドするための grunt タスクを作成しています

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 で書かれています。

4

1 に答える 1

1

コンパイル済みの JavaScript ファイルに andrequire()またはdefine()呼び出しを含めないようにする場合は、AMDclean npm パッケージを使用して、これを options オブジェクトに簡単に追加できます。

onModuleBundleComplete: function (data) {
  var fs = require('fs'),
    amdclean = require('amdclean'),
    outputFile = data.path;
  fs.writeFileSync(outputFile, amdclean.clean({
    'filePath': outputFile
  }));
}
于 2014-05-29T19:30:55.417 に答える