Firebase 工具破坏了我的 webapp 依赖项

Posted

技术标签:

【中文标题】Firebase 工具破坏了我的 webapp 依赖项【英文标题】:Firebase tools broke my webapp dependencies 【发布时间】:2021-05-19 15:16:12 【问题描述】:

我正在使用 Vue cli 和 webpack/babel 构建一个小型 Web 应用程序。我已经使用“npm run build”工作了一个月,并将在“dist”文件夹中创建的文件放在我的服务器上。现在我想将 Firebase 添加到项目中,但“Firebase deploy”命令不会构建相同的文件。它实际上创建了一个新的占位符 index.html 文件,即使我用以前的 html 替换该文件文件,我也会收到大量错误,因为所有其他组件都不存在(没有 JS 没有 CSS)...

这是我的 Firebase 设置。

这些是我使用“dist”文件夹中的“Npm run build”创建的文件

新的“Firebase 部署”文件 - 现在位于公共文件夹中 - 没有 JS 没有 CSS!

我现在遇到的错误...

现在看来,由 Vue Cli webpack/babel 工作流构建的所有依赖项都已经消失了。有关如何解决此问题而无需从头开始的任何建议?

现在即使我输入 NPM run build 我也会收到错误:

【问题讨论】:

【参考方案1】: 使用 npm run build,您可以独立于 Firebase 构建您的 Vue.js 应用程序。 我不清楚您是否仍将应用程序构建到dist 目录或public 目录。但是,根据您的 Firebase 设置(“您想在公共目录中使用什么”),最后您需要将 npm run build 生成的所有文件(包括 css 和 js)放在 public 目录中.

一个简单的解决方案是将 Firebase 的公共目录更改为 dist:您可以在 firebase.json 文件中执行此操作,然后将 "hosting": "public": "public",... 更改为 "hosting": "public": "dist", ...


最后一点:您对“配置为单页应用程序”的问题回答“否”。通常,对于 Vue.js 应用程序,您应该回答是。

【讨论】:

这与我想要构建的位置无关 - 问题是 Vue CLI 默认构建到“dist”中,而 firebase 从“public”中获取。如果我尝试更改 Vue CLI 的输出目录,我会打开一罐蠕虫和模块导出配置,因为我使用的是 Vue CLI/webpack 和 babel :( 我实际上并没有提到 from 您构建的位置,而是 to :-) 我已经调整了答案以便更清楚。一种简单的解决方案是将 Firebase 的公共目录更改为 dist:您可以在 firebase.json 文件中执行此操作,并将 "hosting": "public": "public",... 更改为 "hosting": "public": "dist", ... 谢谢雷诺。我试过了。没用...同样,一旦启动 Firebase 工具,它就破坏了我以前的构建方式,所以现在即使键入“npm run build”或服务,我也会遇到一些错误... 我个人将这两个项目(Vue.js 和 Firebase)保存在完全不同的目录中,并按照此答案中的说明进行操作:***.com/questions/48851677/… 现在我只需要回到我在这个项目上安装 firebase 工具之前的位置,这本身就非常困难。我想我会一劳永逸地忘记 Firebase ...... :(

以上是关于Firebase 工具破坏了我的 webapp 依赖项的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio - 破坏了我的 AVD 路径,破坏了我的模拟器

将 Firebase 添加到颤振项目,破坏项目

升级 android studio 破坏了我的颤振构建(macOS)

MetaMaskOnboarding 变量破坏了我的代码

CocoaPods 破坏了我的项目

如何使用 Firebase 托管的 webapp 获取没有 CORS 标头的外部数据?