【发布时间】:2020-04-14 01:06:25
【问题描述】:
在我的 package.json 文件中,我已指定我的 nodejs 应用程序的类型为 module,因为如果我不这样做,我似乎无法使用 @987654324 @ 声明。这就是现在的样子:
{
"name": "...",
"version": "1.0.0",
"description": "....",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "...."
},
"author": "",
"license": "ISC",
"devDependencies": {
"lodash": "^4.17.15"
},
"type": "module"
}
但如果我将 "type": "module" 添加到我的 package.json 文件中,我将无法再使用 require 语句,因为我收到了 ReferenceError: require is not defined 错误。
如果我从 package.json 中删除 "type": "module" 行,并将我的所有导入重写为要求,则一切正常且没有错误。
我似乎找不到任何迹象,表明 import 和 require 不能在同一个脚本中混合或一起使用,是我在这里遗漏了什么,还是有其他错误?我如何解决在同一个脚本中使用这两种语句?
为什么我需要这个,是因为我想 require 一些基于动态路径的配置文件,并且只有在文件存在的情况下,我认为 import 无法做到这一点.
免责声明:我对 nodejs 服务器端编程相当陌生,所以我可能非常错误地处理这种情况,如果是这种情况,请根据 为什么我上面已经提到了。
注意:我从服务器终端运行这个节点脚本,而不是从浏览器。
【问题讨论】:
-
你检查过这个答案吗? stackoverflow.com/a/10915442/2313097
-
对不起,我最初错过了关于配置文件的部分。我现在已经更新了我的答案,但我认为您可以通过
import()链接或您已经接受答案的其他内容找到答案。 :-)
标签: javascript node.js node-modules