1

Angular2-Meteor プロジェクトを作成しています。Angular 2 RC5 を使用するようにセットアップしました。@injectable() デコレーターを使用してサービスを追加しようとするまで、すべてがうまく機能します。追加するとすぐに、流星のコンパイル エラーが表示されます。

クラス デコレータを使用する場合は、reflect-metadata shim が必要です。

@injectable() デコレーターを削除するとすぐに、Meteor がすべてをコンパイルし、アプリケーションをロードできるようになります。

barbatus:angular2-polyfills パッケージがインストールされています。これは、必要な zone.js と Reflect-metadata パッケージをインポートするために必要なすべてだと思います。誰かが main.ts の上部でインポートを使用することを提案しましたが、それは機能しません。

@NgModule および @component デコレータは問題なく動作しています。@injectable デコレータを使用するサービスを @ngmodule までまだ接続していないので、Meteor 環境が @injectable デコレータを意図したとおりに処理していないことを示していると思います。使用の有無は問いません。

この問題を解決する方法についてのアドバイスやアイデアは大歓迎です。

JT

インストールされている流星パッケージは次のとおりです。

meteor-base@1.0.4             # Packages every Meteor app needs to have
mobile-experience@1.0.4       # Packages for a great mobile UX
mongo@1.1.12                   # The database Meteor supports right now
reactive-var@1.0.10            # Reactive variable for tracker
jquery@1.11.9                  # Helpful client-side library
tracker@1.1.0                 # Meteor's client-side reactive programming library
standard-minifier-css@1.2.0   # CSS minifier run for production mode
standard-minifier-js@1.2.0    # JS minifier run for production mode
es5-shim@4.6.14                # ECMAScript 5 compatibility for older browsers.
ecmascript@0.5.8              # Enable ECMAScript2015+ syntax in app code

autopublish@1.0.7             # Publish all data to the clients (for prototyping)
insecure@1.0.7                # Allow all DB writes from clients (for prototyping)
angular2-compilers
barbatus:angular2-runtime
practicalmeteor:mocha
xolvio:cleaner
hwillson:stub-collections
dispatch:mocha-phantomjs
shell-server
barbatus:angular2-polyfills

インストールされた npm パッケージは次のpackage.jsonとおりです。

  "dependencies": {
    "@angular/common": "2.0.0-rc.5",
    "@angular/compiler": "2.0.0-rc.5",
    "@angular/core": "2.0.0-rc.5",
    "@angular/forms": "^0.3.0",
    "@angular/platform-browser": "2.0.0-rc.5",
    "@angular/platform-browser-dynamic": "2.0.0-rc.5",
    "@angular/router": "^3.0.0-rc.1",
    "@angular2-material/button": "^2.0.0-alpha.7-4",
    "@angular2-material/card": "^2.0.0-alpha.7-4",
    "@angular2-material/checkbox": "^2.0.0-alpha.7-4",
    "@angular2-material/core": "^2.0.0-alpha.7-4",
    "@angular2-material/input": "^2.0.0-alpha.7-4",
    "@angular2-material/toolbar": "^2.0.0-alpha.7-4",
    "angular2-meteor": "^0.7.0-beta.1",
    "angular2-meteor-auto-bootstrap": "^0.6.0",
    "angular2-meteor-polyfills": "^0.1.1",
    "angular2-meteor-tests-polyfills": "^0.0.2",
    "bcrypt": "^0.8.7",
    "es6-shim": "0.35.1",
    "meteor-node-stubs": "0.2.3",
    "reflect-metadata": "0.1.3",
    "rxjs": "5.0.0-beta.6",
    "zone.js": "0.6.12"
  },
  "devDependencies": {
    "chai": "3.5.0",
    "chai-spies": "0.7.1",
    "codelyzer": "latest",
    "tslint": "latest",
    "typescript": "latest",
    "typings": "latest"
  }
4

1 に答える 1