index.js在导入时看不到node模块

bsxbgnwa  于 2023-05-06  发布在  Node.js
关注(0)|答案(2)|浏览(204)

我的项目之前没有package.json,但现在我必须将npm包添加到站点。
在安装了npm i moment和包之后,我输入了项目根目录npm init,但是index.js文件没有看到它,所以这段代码import moment from 'moment';返回了一个错误:

dex.html:1 Uncaught TypeError: Failed to resolve module specifier "moment". Relative references must start with either "/", "./", or "../".

这可能意味着它尝试从文件接收导出。
所以我决定手动提供文件的整个路径作为../../node_modules/moment/moment.js,但是moment.js根本没有导出。
无论如何,我需要将Node.js添加到项目中,因为我要通过express连接站点,所以必须正确添加

**根据@Nonik的评论更新:**我尝试使用const moment = require('moment');,但它返回给我:

dex.js:11 Uncaught ReferenceError: require is not defined

我的主文件是index.html
这里是repo

wtzytmuj

wtzytmuj1#

你需要使用某种形式的bundler,比如Webpack。Node.js可以从文件系统加载文件,但Web浏览器没有“模块”或“导出”的概念(即ESM之前)。bundler是一个单独的构建步骤,它将Webpack的代码与您自己的代码集成在一起,可以在Web上使用。
您也可以使用script标签或ESM直接从CDN导入,如unpkg。

sc4hvdpw

sc4hvdpw2#

如果您正在使用nodejs构建后端项目,请使用以下通用js模块

const moment = require("moment")

相关问题