我的项目之前没有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
2条答案
按热度按时间wtzytmuj1#
你需要使用某种形式的bundler,比如Webpack。Node.js可以从文件系统加载文件,但Web浏览器没有“模块”或“导出”的概念(即ESM之前)。bundler是一个单独的构建步骤,它将Webpack的代码与您自己的代码集成在一起,可以在Web上使用。
您也可以使用
script
标签或ESM直接从CDN导入,如unpkg。sc4hvdpw2#
如果您正在使用nodejs构建后端项目,请使用以下通用js模块