我在同一文件夹中有两个简短的测试文件,如下所示:
pi:~$ cat module.js
export let message = "Hello world";
pi:~$ cat index.js
import { message } from "./module"
console.log(message);
pi:~$ node -v
v14.12.0
pi:~$ pwd
/home/pi
我"type": "module"
在package.json中。然后node ./index.js
,我尝试运行,并得到:
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/home/pi/module' imported from /home/pi/index.js
Did you mean to import ../module.js?
at finalizeResolution (internal/modules/esm/resolve.js:276:11)
at moduleResolve (internal/modules/esm/resolve.js:673:10)
at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:784:11)
at Loader.resolve (internal/modules/esm/loader.js:85:40)
at Loader.getModuleJob (internal/modules/esm/loader.js:229:28)
at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:51:40)
at link (internal/modules/esm/module_job.js:50:36) {
code: 'ERR_MODULE_NOT_FOUND'
我做错了什么?语法是否import { message } from "./module"
正确?
您需要在import
语句中指定文件扩展名
import { message } from "./module.js"
从 Nodejs Docs - Differences between ES modules and CommonJS:
强制文件扩展名
使用import关键字时,必须提供文件扩展名。目录索引(例如“ ./startup/index.js”)也必须完全指定
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句