我正在处理一个节点项目(截图)。我在 helpers.js 中有一个函数(urls),我在底部导出为:
module.exports = {
urls: urls,
};
在我的 index.js 中,我尝试使用以下命令导入它:
import { urls } from '.helpers';
const myUrls = urls(1,3);
当我运行它时,我得到
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/home/optionhomes11/nodeprojects/hayes/helpers' imported from /home/optionhomes11/nodeprojects/hayes/index.js Did you mean to import ../helpers.js?
我做错了什么?
答案 0 :(得分:5)
您已经使用过
"type":"module"
然后确保您有 import
文件必须是 .js
扩展名
答案 1 :(得分:4)
您应该从 './helpers'
导入,而不是从 '.helpers'
导入。
答案 2 :(得分:2)
我还建议您安装 Path Intellisense
VS 代码扩展。在处理嵌套路径时,它真的很有帮助。
答案 3 :(得分:1)
你没有做错任何事。 文件扩展名的 EcmaScript 模块的当前解析算法以及导入具有索引文件的目录的能力需要使用实验标志。见esm,底部。
为了使您的工作保持原样, 而不是
$ node index.js
你愿意:
$ node --experimental-specifier-resolution=node index.js
您也可以在 package.json 中创建脚本
像这样:
"scripts": {
"start": "NODE_OPTIONS='--experimental-specifier-resolution=node' node src/index.js
答案 4 :(得分:0)
使用 .js 扩展名
import urls from './helpers.js';
添加到 package.json 以
"type": "module",