【发布时间】:2020-09-02 13:13:58
【问题描述】:
我正在尝试将 moments 导入到我的 main.js 文件夹中,但遇到了困难。
我安装了npm install moment --save。我已经尝试过require('moment') 和import 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
【问题讨论】:
-
很抱歉,您忽略了问题的关键部分,即您遇到的实际错误。您能否再次重现该问题并使用您得到的实际错误更新您的问题?我的意思是,如果错误是“那么常见”,那么您一开始就不会问这个问题,对吗?
-
我添加了我收到的当前错误。其他错误是尝试使用
require,但如果可能,id 而不是使用import语法 -
当您切换到 ES6 模块时,您不应该使用 require,您可以通过在 package.json 文件中添加
"type": "module"来实现。使用模块导入 moment.js 的正确语法是:import moment from 'moment';。尝试以这种方式导入它,让我们看看错误是什么。 -
我正在使用
import moment from 'moment',这给了我错误。这是我困惑的根本原因。 -
我也不明白为什么你的 package.json 中有一个明确的
requirejs依赖项。尝试删除那个,node.js 中内置了 require 语法。还要确保您使用的是最新版本的 node,旧版本的 node 不支持 ES6 模块语法。
标签: javascript node.js import