为什么节点模块在 firebase 模拟器上工作但不工作 post 部署?
Why are node modules working on firebase emulator but not working post deployment?
我在使用 npm 安装的项目中使用 intl-tel-input。当我使用 Firebase 模拟器进行测试时,一切似乎都运行良好,但它停止工作 post 部署。
检查 Chrome 开发工具中的“源”选项卡后,我发现该模块未正确包含。 (请检查图像)但是,我完全无法弄清楚为什么。请帮忙!
Emulator Screenshot with the Telephone Input field working fine.
Screenshot taken post deployment with the Telephone input field broken.
Source File - intlTelInput.js located at /node_modules/intl-tel-input/build/css/intlTelInput.js
Source File - intlTelInput.css located at /node_modules/intl-tel-input/build/js/intlTelInput.css
部署时默认使用 Firebase ignores node_modules
个目录。
您可以使用几个选项来解决此问题。
- 使用 Rollup 或 Webpack 等构建工具生成包含节点依赖项的包。
- 将所需的
node_modules
文件复制到其他目录,例如 assets
,然后从那里加载它们。
- 更新
firebase.json
以在部署时不忽略 node_modules
。请注意,如果您有任意数量的节点包,这可能会大大增加已部署应用程序的大小。
我在使用 npm 安装的项目中使用 intl-tel-input。当我使用 Firebase 模拟器进行测试时,一切似乎都运行良好,但它停止工作 post 部署。
检查 Chrome 开发工具中的“源”选项卡后,我发现该模块未正确包含。 (请检查图像)但是,我完全无法弄清楚为什么。请帮忙!
Emulator Screenshot with the Telephone Input field working fine.
Screenshot taken post deployment with the Telephone input field broken.
Source File - intlTelInput.js located at /node_modules/intl-tel-input/build/css/intlTelInput.js
Source File - intlTelInput.css located at /node_modules/intl-tel-input/build/js/intlTelInput.css
部署时默认使用 Firebase ignores node_modules
个目录。
您可以使用几个选项来解决此问题。
- 使用 Rollup 或 Webpack 等构建工具生成包含节点依赖项的包。
- 将所需的
node_modules
文件复制到其他目录,例如assets
,然后从那里加载它们。 - 更新
firebase.json
以在部署时不忽略node_modules
。请注意,如果您有任意数量的节点包,这可能会大大增加已部署应用程序的大小。