gpt4 book ai didi

javascript - 在 Firebase 上部署 Angular2 应用程序

转载 作者:行者123 更新时间:2023-11-29 19:13:44 25 4
gpt4 key购买 nike

我正在尝试在 Firebase 上部署一个 angular2 应用程序。我关注了this指南,但是当我键入 firebase open 时,我收到错误消息(见下文)。

这是我的应用程序的结构

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

我已将所有文件放入我的 app 文件夹中(它们是 .js 文件,从 .ts 文件转译而来在 dev 文件夹内)在 public 文件夹内。我也在公共(public)文件夹中复制了 index.html 文件。

所以现在公共(public)文件夹结构是:

\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/**"
]
}

google chrome 控制台 显示的错误是:(index):24 Uncaught ReferenceError: System is not defined

我的方向是否正确?是什么导致了这个错误?

最佳答案

问题的根本原因是index.html中的脚本要调用

System.config(...

但是在

中定义的系统对象
<script src="node_modules/systemjs/dist/system.src.js"></script>

未加载,因为在您的 firebase.json 中您忽略了 /node_modules/ 的规则,并且 system.src.js 未上传到 Firebase 服务器。

从 node_modules 上传所有东西是不切实际的,因为有很多文件。

我能够通过以下步骤解决问题:

  • 使用 angular-cli 创建了 Angular 2 应用程序
  • 使用 ng build 构建我的应用程序,它使用我的应用程序创建了 dist 文件夹
  • 使用 firebase init 进行初始化。对于“公共(public)根目录应该是什么目录?”的问题给出答案 dist .
  • firebase 部署

关于javascript - 在 Firebase 上部署 Angular2 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36850457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com