0

私はAngularのコアモジュールが本当に好きで、これらの機能のいくつかをnode/io.js環境で使用しようとしています。つまり、angular モジュールを commonjs 形式の ES5 モジュールにトランスパイルします

traceur を使用して 1 つずつ手動で角度モジュールを構築しようとしましたが、成功しませんでした (循環依存関係を生成します)。 またgulpfile.js、commonjs 形式で ES5 出力を生成するために角度プロジェクトを適応させようとしました。

var _COMPILER_CONFIG_JS_DEFAULT = {
  sourceMaps: true,
  annotations: true, // parse annotations
  types: true, // parse types
  script: false, // parse as a module
  memberVariables: true, // parse class fields
  modules: 'commonjs'
};

... build/transpile.js.devタスクを実行していますが、次のメッセージが表示され続けます:

TypeError: Cannot call method 'map' of undefined

デフォルト設定を変更しても、このエラーsourceMapsを取り除くことはできません。map

また、実際に出力フォーマットを処理しているように見えるトランスパイラー ツールにも気付きました。しかし、オプションを変更することはできませんでした。System.registercommonjsに変換できない形式のファイルのデフォルト構成でのみ結果が得られます。

このすべてを経験した人は、commonjs スタイルのプロジェクトで angular のモジュールを使用するソリューションを持っていますか? ライブラリとして使用したいので、プロジェクトを別のタイプのモジュール システムに変換したくないことに注意してください。

どんなアドバイスでも大歓迎です、ありがとう!

4

2 に答える 2

0

すべてのファイルを 1 つのメイン ファイルに連結するビルド ステップと共に Angular モジュールを使用することは、良いアプローチだと思います。

これは、私が取り組んでいるプロジェクトの gulpfile.js です。

var gulp = require('gulp');
var concat = require('gulp-concat');


    var path = 'app/js/';
    var srcFiles = [path + 'midi.js',
                    path + 'keyboard.js',
                    path + 'analyser.js',
                    path + 'services/amp.js',
                    path + 'services/lfo-amp.js',
                    path + 'services/osc.js',
                    path + 'services/filter.js',
                    path + 'services/lfo.js',
                    path + 'audio.js',
                    path + 'synth.js',
                    path + 'app.js'];

    gulp.task('default', function () {
      gulp.src(srcFiles)
        .pipe(concat('app.js'))
        .pipe(gulp.dest('dist/js/'))
    });

gulp.src は、連結するファイルの配列を受け入れ、すべてのファイルを正しい順序に保ちます。大量のスクリプト タグを読み込もうとしてサーバーがボトルネックになることを心配することなく、Angular プロジェクトを好きなようにメイン ファイルに分割できるようになりました。

于 2015-02-04T02:57:03.560 に答える
0

次の例のように、CommonJS ラッパーを使用して Angular モジュールをマップします。

# angular is required globally
{{name}} = angular.module '{{name}}', []
module.exports = {{name}}
于 2015-01-03T21:48:52.047 に答える