私たちはアプリのバックエンドにSails.jsを使用しています。フロントエンドには角2を使用しています。 Angular 2 rc1がリリースされる前は、すべてが完璧に機能しました。私はアップグレードを開始し、いくつかの障害にぶつかった。角2とSails.js
まず、フロントエンドからnode_modules
フォルダーにあるものにアクセスすることはできません。そこで、@angular/
フォルダ、rxjs/
、およびzone.js
のように、node_modules
が必要なぎこちぎのタスクがあります。これは機能しているようです。私はjs/dependencies/zone.js/dist/zone.js
をHTMLファイルで参照すると、ファイルを完全に取得します。しかし、SystemJSを設定すると、ファイルが正しく引き込まれないように見えます。
var System;
(function(global) {
// map tells the System loader where to look for things
var map = {
'app': 'js', // 'dist',
'rxjs': 'js/dependencies/rxjs',
// 'angular2-in-memory-web-api': 'angular2-in-memory-web-api',
'@angular': 'js/dependencies/@angular',
};
// packages tells the System loader how to load when no filename and/or no extension
var packages = {
'app': { main: 'main.js', defaultExtension: 'js' },
'rxjs': { defaultExtension: 'js' },
// 'angular2-in-memory-web-api': { defaultExtension: 'js' },
// '/angular2-jwt': { defaultExtension: 'js' }
};
var packageNames = [
'@angular/common',
'@angular/compiler',
'@angular/core',
'@angular/http',
'@angular/platform-browser',
'@angular/platform-browser-dynamic',
'@angular/router',
'@angular/router-deprecated',
'@angular/testing',
'@angular/upgrade',
];
// add package entries for angular packages in the form '@angular/common': { main: 'index.js', defaultExtension: 'js' }
packageNames.forEach(function(pkgName) {
packages[pkgName] = { main: 'index.js', defaultExtension: 'js' };
});
var config = {
map: map,
packages: packages
};
System.config(config);
})(this);
これはSystemJSの設定に使用した設定ファイルです。しかし、rxjs
と@angular
は、SystemJSによって引き込まれていません。エラーはブラウザのコンソールから消えていますが、アプリケーションは確実にブートストラップされていません。
@angular
ファイルをSystemJSでプルする方法はありますか? Angular 2アプリをSailsで稼働させるには他にどのようなオプションが必要ですか? systemjs.config.js
ファイル、layout.ejs
ファイル、およびmain.ts
ファイルと
**** EDIT ****
私はgruntコピータスクを編集することで同じことをしますが、依存関係が最初に反映されていないときにサーバを持ち上げたときに気づきました。サーバーを停止してもう一度起動すると、依存関係が発生します。 –