You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Express项目仅根目录app.js可使用require,其他文件夹无法引入库如何解决

核心问题本质
  • 项目根目录的app.js运行在Node.js服务端环境,原生支持模块加载语法,所以你写的require代码可以正常执行
  • public、static、views目录下的JS文件最终会发送到用户浏览器端运行,浏览器没有内置require方法,且默认不支持直接导入node_modules下的依赖包,因此会触发你遇到的两个报错。另外注意firebase-admin是服务端专用包,本身就无法在浏览器环境运行,浏览器端请使用普通的firebase客户端SDK。
Node.js原生支持的模块引入方式

Node.js除了你正在用的CommonJS规范require()语法外,还支持ES Module规范的import语法,启用方式如下:

  • 在项目根目录的package.json配置文件中添加"type": "module"字段
  • 配置完成后,所有.js后缀的文件默认会按ES Module规范解析,你就可以直接使用import express from 'express'这类写法导入模块
浏览器端JS引入依赖的可行方案

如果你需要在浏览器运行的JS代码中引入第三方库,可以选择以下三种方案:

  • CDN引入:不需要将库安装到node_modules,直接在HTML的<script>标签中引入对应库的官方CDN地址,引入后即可直接访问库暴露的全局对象,适合轻量项目使用
  • 前端构建工具打包:使用Vite、Webpack等前端构建工具处理前端JS代码,构建工具会自动把import导入的依赖打包成浏览器可识别的产物,再将打包后的文件放到public目录供页面引入,是中大型项目的常用方案
  • 原生浏览器ES Module:给引入JS的<script>标签添加type="module"属性,即可在JS中使用import语法,但不支持直接写包名的裸导入,需要写依赖文件的完整相对/绝对路径

内容的提问来源于stack exchange,提问作者Swift

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 03:15:04