从节点模块在 VueJS 中服务 firebaseui.css 时出现问题

Problem serving firebaseui.css in VueJS from node module

所以基本上我已经遇到这个问题很长时间了,我以为我已经解决了它,但事实并非如此。

我使用 this guide 开始开发我的网站,它帮助我使用 vue-cli 创建了一个 PWA。

在向其添加 firebase 身份验证的同时,我还使用 this guide 将 firebaseui 添加到我的项目中。

它告诉我将这一行添加到我的 index.html

<link type="text/css" rel="stylesheet" href="node_modules/firebaseui/dist/firebaseui.css" />

遗憾的是,这没有成功,我在 chrome 控制台中收到此错误消息:

Refused to apply style from 'http://localhost:8080/node_modules/firebaseui/dist/firebaseui.css'
 because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.

这是 2 个月前的事了,在找到临时解决方案之前,我尝试了很多方法来解决这个问题:

当跟随 link 到 CSS 资源时,我在我的浏览器中得到一个 "Cannot GET /node_modules/firebaseui/dist/firebaseui.css",我想也许我的本地服务器没有提供这个文件。

所以我进入 build/dev-server.js 文件并添加了这一行:

app.use(express.static('node_modules'))

并将我的 index.html 中的 link 更改为:

<link type="text/css" rel="stylesheet" href="/firebaseui/dist/firebaseui.css" />

现在我的网站在 运行 "npm run dev" 时正确加载了所有 firebaseui 组件,但现在在 运行 "npm run build" 时它仍然没有加载,因为我的服务器打印了这个:

"GET /firebaseui/dist/firebaseui.css" Error (404): "Not found"

我想这是有道理的,因为我之前只更改了 dev-server.js 中的代码,而不是 build/production 相关文件中的代码

基本上,我要求一种方法来使用 firebaseui.css 而无需更改 dev-server.js 中的内容以使其在生产中工作或让某人告诉其他文件在我必须编辑构建目录才能使其工作。

提前致谢,如果您需要查看我的更多代码,请索取,我会更新此 post!

天哪,所以我进行了更通用的挖掘并发现了这个讨论:

https://github.com/vuejs-templates/webpack/issues/604

通过删除 index.html 中的导入和 dev-server.js

中现在无用的 app.use 行解决了我的问题

现在我只是添加了

import 'firebaseui/dist/firebaseui.css'

在我的 main.js 中,firebaseui 组件在开发和生产版本中都正确呈现! :)