找不到模块

老盖泽

我在同一文件夹中有两个简短的测试文件,如下所示:

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章