节点找不到没有.js扩展名的模块 [英] Node can't find modules without .js extension

查看:34
本文介绍了节点找不到没有.js扩展名的模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个文件-test.js,其中包含以下几行代码:

import {blabla} from "./bla";

async function dataGenerator() {
..........
}

(async() => {
  console.log('1')
  await dataGenerator()
  console.log('2')
})()

注意:忽略导入结构。对于这个问题来说是虚构的。 在我的文件中,导入是自动的。

当我尝试使用";节点test.js";从终端运行时,返回错误:

找不到从D:est.js导入的模块‘D:la’

我已将行:";type";:";MODULE";添加到Package中。如果不这样做,它将返回:

不能在模块外使用IMPORT语句

我正在使用节点14。

如何才能在不添加所有导入的情况下运行test.js。函数中有函数,函数中有函数,添加.js扩展名比较复杂。有运行它的NPM吗?

谢谢!

推荐答案

默认情况下,使用ES模块的import时,Node.js不会尝试猜测文件扩展名。这与require的CommonJS模块不同。

documentation for the ES module loader中,您可以阅读如何在磁盘上找到文件。

标题‘定制ESM说明符解析算法’说明:

--experimental-specifier-resolution=[mode]标志可用于定制扩展解析算法。默认模式是explicit,它要求向加载器提供模块的完整路径。若要启用自动扩展解析并从包含索引文件的目录导入,请使用node模式。

这篇关于节点找不到没有.js扩展名的模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆