8

開発では依存関係を管理するために RequireJS を使用していますが、本番環境では AMD ローダーのすべての依存関係を削除したいと考えています。RequireJS オプティマイザーは、実行時に AMD ロードを引き続き使用するファイルを作成するようです。jquery が生成するものなど、静的な (AMD に依存しないが、AMD と互換性のある) ファイルを探しているだけです (jquery を見てから)。ソース、彼らは grunt ファイルで依存関係を手動で順序付けているようです)。これは可能ですか?

私は RequireJS 以外の他のライブラリも使用することにオープンです。

注: これは私の他の質問Javascript requirejs in development butcompiled in production に似ていますが、この場合は AMD をまとめて削除したいと考えています。

4

3 に答える 3

3

タグまたは AMDを介してスクリプトをロード可能にしたい場合は、 EventEmitter クラスが self を公開する方法に<script>基づいて何かを使用することをお勧めします。

// Expose the class either via AMD, CommonJS or the global object
if (typeof define === 'function' && define.amd) {
    define(function () {
        return EventEmitter;
    });
}
else if (typeof module !== 'undefined' && module.exports){
    module.exports = EventEmitter;
}
else {
    this.EventEmitter = EventEmitter;
}

これにより、AMD、CommonJS (ノード)、およびグローバル オブジェクト (つまりwindow) を介してオブジェクトが公開されます。これには主な注意点が 1 つあります。これは、AMD 経由でクラスを公開するだけの単一ファイル スクリプトを対象としています。

多くのモジュールがある場合は、最初にスクリプトをr.jsでコンパイルし、AMD をAlmondでシムしてから、上記のようなものを使用して上記の複数の方法で公開することをお勧めします。

于 2013-07-17T11:24:57.560 に答える
-1

私はあなたと同じ問題を抱えていました。

ようやく解決し、requireJS プロジェクトの基本構造と自動化を行う Gruntfile を作成しました。

  1. プロセス LESS
  2. requireJS を最適化します。
  3. AMD を削除
  4. HTML のスクリプト タグを、require 構文からスクリプト タグ sintax に置き換えます。

これがお役に立てば幸いです。

https://github.com/sheldorn/require-base-structure

于 2014-12-21T12:36:18.063 に答える
-1

https://github.com/kodmax/grunt-stonejsが答えです。requirejs ベースのプロジェクトを JS Stone にコンパイルします。基本的にオーバーヘッドはゼロです。

于 2014-09-02T22:01:57.013 に答える