找不到模块
Cannot find module
我在同一个文件夹中有两个简短的测试文件,如下所示:
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
我在 package.json 中有 "type": "module"
。然后我尝试 运行 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:
Mandatory file extensions
A file extension must be provided when using the import keyword.
Directory indexes (e.g. './startup/index.js') must also be fully
specified
我在同一个文件夹中有两个简短的测试文件,如下所示:
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
我在 package.json 中有 "type": "module"
。然后我尝试 运行 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:
Mandatory file extensions
A file extension must be provided when using the import keyword. Directory indexes (e.g. './startup/index.js') must also be fully specified