node.js - 找不到模块
问题描述
我在同一个文件夹中有两个简短的测试文件,如下所示:
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')也必须完全指定
推荐阅读
- r - 在 R 中的冒号之前删除单词时出错
- c# - Visual Studio for Mac:如何使用 x64 运行测试
- scala - 如何在scala中为flatMap定义一个函数
- mysql - 按逗号分隔的字段分组
- java - 如何更新已删除所有数据的recyclerview
- java - Firebase 数据库:尽管有“无参数构造函数”错误
- python - Django 2.0 的 Django-Oscar URL?
- image - 网页无法显示某些图像
- c++ - C++ 用 rand 定义函数语法
- javascript - NightmareJs + Jquery 返回空的 JSON 响应