1

このプランカーを使用してコードをベースにしました: http://plnkr.co/edit/81nWDyreYMzkunihfRgX?p=preview

ご覧のとおり、依存関係をリモートでロードしています (http/s を使用したスクリプト)。次に、node を使用して依存関係を変更し、すべての依存関係をローカルで package.json と tsconfig.json に置き換えます。

ただし、ルーラーと四角形の依存関係を次のようにローカルに変更すると、次のようになります。

import {Ruler, Rectangle} from "angular2/src/platform/browser/ruler";

次のエラーが表示されます。

"SyntaxError: expected expression, got '<'
Evaluating http://localhost:3000/angular2/src/platform/browser/ruler
Error loading http://localhost:3000/src/main.ts" angular2-polyfills.js:138:14

SyntaxError: expected expression, got '<'
4

3 に答える 3

2

https://github.com/angular/angular/pull/8452#issuecomment-220460761

mhevery が 12 日前にコメントしました Ruler サービスを削除することを決定したため、パブリック API の一部ではありません。

于 2016-06-01T09:03:31.653 に答える
1

SystemJS 構成に次の行を追加するだけです。

<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>

(...)

<script>
  System.config({
    packages: {        
      app: {
        format: 'register',
        defaultExtension: 'js'
      }
    },
    map: {
      'angular2/src/platform/browser/ruler': 'node_modules/angular2/src/platform/browser/ruler.js'
    }
  });
  System.import('app/boot')
        .then(null, console.error.bind(console));
</script>

インポートを使用すると、対応するオブジェクトが得られます。

import {Ruler} from 'angular2/src/platform/browser/ruler';
console.log(Ruler);
// print: Ruler(domAdapter) {
//    this.domAdapter = domAdapter;
// }

お役に立てば幸いです、ティエリー

于 2016-01-31T09:43:10.533 に答える
0

バンドルから Angular2 をインポートしていると仮定します。

angular2.min.js or ( angular.js | angular.dev.js )

ファイルを確認する./node_modules/angular2/bundles/overview.mdと、angular2 が以下で構成されていることがわかります。

  • angular2/コア
  • angular2/共通
  • angular2/コンパイラ
  • angular2/プラットフォーム/ブラウザ
  • angular2/プラットフォーム/common_dom
  • angular2/計装

src/フォルダがありません!

アプリにインポートする場合は、フォルダーをアプリにangular2/src/platform/browser/ruler提供する必要があります。今回はバンドルはありませんnode_modules/angular2

SystemJS を使用している場合は、次の構成を検討してください。

System.config({
        defaultJSExtensions: true,
        map: {
            "app": './src',
            "angular2": 'node_modules/angular2',
            'rxjs/operator/*' : 'node_modules/rxjs/add/operator/*',
            "rxjs": 'node_modules/rxjs',
            "reflect-metadata": 'node_modules/reflect-metadata/temp/Reflect.js',
            "zone.js": 'node_modules/zone.js/dist/zone.js'
        },
        packages: {
            app: {
                defaultExtension: 'js',
                format: 'register'
            },
            angular2: {
                defaultExtension: 'js',
            },
            rxjs: {
                defaultExtension: 'js'
            },
            'reflect-metadata': {
                format: 'global'
            }
        }
    });

node_modulesフォルダーはパブリックにアクセス可能です!

于 2016-01-31T09:43:00.140 に答える