2016-04-25 17 views
2

私はFirebaseにangle2アプリケーションをデプロイしようとしています。私はthisガイドに従ってきましたが、firebase openと入力するとエラーが表示されます(下記参照)。FirebaseのAngular2アプリケーションをデプロイする

これは私のアプリケーション

\root 
    \ app 
    \ assets 
    \ dev 
    \ node_modules 
    \ public 
    \ src 
    \ typings 
    index.html 
    firebase.json 
    gulpfile.js 
    package.json 
    tsconfig.json 
    typings.json 

の構造である私は、パブリックフォルダ内に(彼らはdevフォルダ内にある.tsものからtranspiled .jsファイル、だ)私のappフォルダ内のすべてのファイルを入れています。私は、パブリックフォルダ内のindex.htmlファイルもコピーしました。

だから今、パブリックフォルダ構造は次のとおりです。

\public 
    \app 
     |-> app.component.js 
     |-> boot.js 
     |-> other .js files 
    index.html 

これはindex.htmlを:

<html> 
<head> 
    <base href="/"> 
    <title>Angular 2 Boilerplate</title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <!-- Load libraries --> 
    <!-- IE required polyfills, in this exact order --> 
    <script src="node_modules/es6-shim/es6-shim.min.js"></script> 
    <script src="node_modules/systemjs/dist/system-polyfills.js"></script> 
    <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 src="node_modules/angular2/bundles/router.dev.js"></script> 
    <script src="node_modules/angular2/bundles/http.js"></script> 


    <link rel="stylesheet" href="src/css/app.css"> 
</head> 
<body> 
<my-app>Loading...</my-app> 

<script> 
    System.config({ 
     packages: { 
      app: { 
       format: 'register', 
       defaultExtension: 'js' 
      } 
     } 
    }); 
    System.import('app/boot') 
      .then(null, console.error.bind(console)); 
</script> 
</body> 
</html> 

私firebase.jsonは、このようなものです:

{ 
    "firebase": "wetta", 
    "public": "public", 
    "ignore": [ 
    "firebase.json", 
    "**/.*", 
    "**/node_modules/**" 
    ] 
} 

エラーそのグーグルクロムコンソールshows is: (index):24 Uncaught ReferenceError: System is not defined

私は正しい方向に進んでいますか?このエラーの原因は何ですか?

答えて

3

問題の根本的な原因は、index.htmlをからスクリプトが

System.config(...

しかし

<script src="node_modules/systemjs/dist/system.src.js"></script> 
で定義されているシステムオブジェクトを呼び出すために望んでいることですあなたのfirebase.jsonにあなたが /node_modules/とsystem.src.jsがFirebaseサーバーにアップロードされていないため、ルールを無視する必要があるため

がロードされていませんでした。

node_modulesからすべてのものをアップロードすることは現実的ではありません。なぜなら、多くのファイルが存在するためです。

私は、次の手順で問題を解決することができました:

  • 角度-CLI
  • で角度2アプリケーションを作成しましたが、私にdistのフォルダを作成したNGビルドで自分のアプリケーションを構築しましたapp
  • firebase initで初期化します。 「どのディレクトリがパブリックルートであるべきか」という質問に対して答えはdistです。
  • firebase deploy
関連する問題