【问题标题】:Right way to use node modules with Firebase hosted project在 Firebase 托管项目中使用节点模块的正确方法
【发布时间】:2020-02-03 12:21:22
【问题描述】:

我想在 Google Firebase 主机上托管一个网络应用,以及来自节点模块的 import 代码,但我找不到正确的方法。

我已将开发机器上的模块安装到 Firebase 安装的主目录中,并从我自己的 JS 文件中导入它们,但无论我尝试什么方式,都会收到错误消息。例如(ol 代表 OpenLayers):

import '../ol/ol.css';
import {Map, View} from '../ol';
import TileLayer from '../ol/layer/Tile';
import OSM from '../ol/source/OSM';

然后我得到这些错误:

加载模块脚本失败:服务器以“text/css”的非 JavaScript MIME 类型响应。

该错误消息中的 MIME 类型有时也是 "text/html"

除了将package.jsonnode_modules 放在正确的位置之外,还有更多的步骤吗?

我尝试过修补,但可能遗漏了一些明显的东西......

【问题讨论】:

  • 不清楚您在这里要做什么。 Firebase 托管只提供静态内容。它不在后端托管节点应用程序或运行 JavaScript 代码。您可以为 Cloud Functions 编写代码并为其代理托管,但这与您在这里所做的完全不同。
  • 好的,我正在使用 npm 安装我想在浏览器中运行的模块,我正在使用 FB 托管来提供带有这些模块的页面...
  • Firebase Hosting 的使用在这里并不重要,因为它只提供静态代码。它的工作方式与任何托管服务提供静态内容的方式相同。听起来您只是在构建静态内容时遇到了问题。

标签: node.js firebase npm openlayers firebase-hosting


【解决方案1】:

如果该 JS 代码来自节点文件,则无法在其中导入 .css 文件。

也检查Is it possible to import a .css file using ES6 modules?

【讨论】:

  • 我明白了。但是,从其他导入语句加载的其他错误仍然存​​在。
  • 可能不支持导入,具体取决于您的设置stackoverflow.com/questions/54384073/…
  • 尝试使用 require 而不是 import
  • 嗯,我正在使用最新版本的 Chrome 和 npm...我不知道如何将这些行转换为 require,因为我正在导入单个类?
猜你喜欢
  • 1970-01-01
  • 2020-05-28
  • 1970-01-01
  • 2021-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-15
  • 2021-06-07
相关资源
最近更新 更多