[英]Node 14: Import modules using an absolute path for native ES6 module
我正在节点14.9.0
编写一个应用程序。 我通过在package.json
添加"type": "module"
创建了一个 ES6 模块。 我正在尝试为我的项目导入模块。 我想避免使用相对导入(因为../../
是如此可读),而是想要使用绝对导入,就像每个模块都是从我项目根目录中的index.js
文件导入的一样。
从我收集的关于节点如何发现模块的信息来看,省略了.
从我的导入路径的前面应该使 node 默认从我的项目的根目录中查找模块。 但是,它会尝试从我的硬盘驱动器的根目录查看。
...
import User from '/models/user.model';
...
Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'C:\models\user.model' imported from C:\Users\User\Documents\My App\my-app\index.js
我没有使用 typescript、webpack、babel 或任何其他转译器。 没有它们是否有可能获得绝对进口?
因为您缺少*.js
扩展名。 它需要 ECMA 节点模块 ( https://nodejs.org/api/esm.html#esm_mandatory_file_extensions )。 这将是有效的(现在我正在没有 Babel 的节点 14 中开发):
import User from '/models/user.model.js';
在根 package.json 中,您必须添加:
"type": "module"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.