javascript - node.js - 无法导入已安装的包
问题描述
我正在尝试导入moments
我的main.js
文件夹并且遇到了困难。我安装了npm install moment --save
. 我已经尝试过require('moment')
andimport moment from 'moment'
语法。当我尝试使用时require
,我遇到了我不记得确切的错误,但它们很常见。我已经搜索了 YouTube 和 SO,但没有一个解决方案可以解决它。这是我的package.json
{
"name": "project",
"version": "1.0.0",
"description": "",
"main": "main.js",
"type": "module",
"dependencies": {
"live-server": "^1.2.1",
"lodash": "^4.17.20",
"moment": "^2.27.0",
"node-sass": "^4.14.1",
"requirejs": "^2.3.6"
},
"devDependencies": {
"sass": "^1.26.10",
},
"scripts": {
"compile:sass": "node-sass sass/main.scss style.css -w",
"devserver": "live-server",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
在index.html
文件中我必须type="module"
允许 ES6 导入。我究竟做错了什么?
对不起!忘记了我得到的错误(当前)
TypeError: Error resolving module specifier: moment
尝试使用时require
:
ReferenceError: require is not defined
解决方案
好吧,在深入挖掘之后,让我们总结一下:
在您的情况下,您只想在使用脚本标记的文件中引用的文件中moment.js
使用main.js
。这与您可以用来下载时刻依赖项这一事实index.html
无关。为了实现您想要做的事情,我建议您执行以下操作:node.js
npm
使用 npm 安装 moment 依赖项
npm install moment
将moment.js
文件从node_modules/moment/lib
文件夹(不是 src!)复制到项目中的文件夹(fe.scripts)。您可以手动执行此操作,也可以使用脚本/任务运行器执行此操作。
在 main.js 文件中,您使用
import moment from './moment.js';
并在您的 index.html 文件中使用引用 main.js 文件
<script type="module" src="./main.js"></script>
正如我们讨论过的。这是一些体力劳动,但为了进行一些快速试验,这有时就足够了。如果您要开始实际构建一个完整大小的应用程序,我强烈建议您添加一个模块捆绑器,例如webpack
谁可以将所有这些工作从您手中拿走。
推荐阅读
- java - ProgressBar 动画卡在屏幕旋转上
- python - 列中值范围的排列序数
- amazon-web-services - 在 java 中按实例名称获取 EMR 6 的默认 Amazon EBS 存储卷和大小
- pytorch - 如何使用 cuda >=11.0(和 pytorch 1.9)安装 torchtext?
- javascript - 如何将一个 Redux reducer 拆分为多个较小的 reducer
- c++ - 关于 C++ 中 lambda 的作用域说明
- wordpress - Woocommerce 价格之间的差异
- arrays - 如何用相同的值填充数组 X 次以及如何将数据正确发送到函数?
- css - 如何从 selectonelistbox (JSF primefaces)中删除焦点响应
- python - 迭代函数以找到起始值以在一定数量的步骤中完成序列