Angular:运行生产应用程序并部署到Firebase

时间:2017-09-18 00:09:53

标签: javascript angular firebase deployment build

我打算将我的项目部署到 firebase 中的生产

我已经这样做了:

1。正在运行:firebase login

2。正在运行:firebase init(我设置了吊装项目)

3. 登录firebase

4. :正在运行:ng build --env=prod

(因为运行ng build --prod无法抛出此错误:

   ./src/main.ts中的错误找不到模块:错误:无法解决   ' ./$$_ gendir /应用/ app.module.ngfactory'在   ' /家/ firas /局/ Miraldev - 角测试/ src目录' @ ./src/main.ts 4:0-74   @ multi ./src/main.ts

生成的 dist / 文件夹包含 index.html ,该文件应该在我的应用中本地运行:

index.html:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>MiraldevAngularTest</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  </head>
<body>
  <app-root></app-root>
  <script src="https://www.gstatic.com/firebasejs/4.3.1/firebase.js"></script>
  <script>
    // Initialize Firebase
    var config = {
      apiKey: "AIzaSyC0m1wWVYokXRUrAQmFKwukdvAw3aowEnY",
      authDomain: "miraldev-test.firebaseapp.com",
      databaseURL: "https://miraldev-test.firebaseio.com",
      projectId: "miraldev-test",
      storageBucket: "miraldev-test.appspot.com",
      messagingSenderId: "821288466474"
    };
    firebase.initializeApp(config);
  </script>
<script type="text/javascript" src="inline.bundle.js"></script><script type="text/javascript" src="polyfills.bundle.js"></script><script type="text/javascript" src="scripts.bundle.js"></script><script type="text/javascript" src="styles.bundle.js"></script><script type="text/javascript" src="vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body>
</html>

但是当我在chrome下运行它会抛出错误,表明没有这些文件: inline.bundle.js,main.bundle.js,polyfills.bundle.js ...... ) 即使它们都出现在 dist / 文件夹中,但它似乎没有看到或正在运行它们。

chrome.html下的index.html控制台快照: enter image description here

运行我的制作应用的任何想法

1 个答案:

答案 0 :(得分:0)

我在package.json使用脚本:

"scripts": {
    "deploy:test": "ng build --prod && firebase deploy --project test"
    "deploy:prod": "ng build --prod && firebase deploy --project prod"
}

它构建app(作为你的)并上传到firebase托管。我有生产和登台环境。要使用firebase.jsonfirebaserc配置来设置firebase托管:

firebaserc

{
  "projects": {
    "prod": "myproject-prod",
    "test": "myproject-test"
  }
}

firebase.json

{
  "database": {
    "rules": "database.rules.json"
  },
  "hosting": {
    "public": "dist",
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ],
    "headers": [
      {
        ... various security headers
      }
    ],
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  }
}

database.rules.json我有数据库的安全规则:

{
  "rules": {
    ".read":true,
    ".write":true
  }
}