请问nodejs的内置库,在使用的时候,是否即支持CJS引入,也支持ESM引入呢?
我在typescript项目中,发现nodejs的内置库:path/fs
一般应该是require引入,但是发现可以import引入,并打印(有数据):
import * as Path from "path";
import * as Fs from 'fs';
//console.log(Path)
console.log(Fs) // 打印有数据
打印有引入的对象数据:
...
opendirSync: [Getter],
F_OK: [Getter],
R_OK: [Getter],
W_OK: [Getter],
X_OK: [Getter],
constants: [Getter],
promises: [Getter]
}
1、path和fs都是支持cjs和esm引入吗?但是在VSCode显示的时候,为何会报错找不到模块:
2、因为nodejs还有很多内置库和三方库,我们如何进行确认是否支持cjs和esm的引入?
ts 不是运行时,你的运行时依然是node,目前只支持 cjs。
所以
@types/node
依赖3.1. 如果第三方库不支持 esm 导入,可以写
import * as A from 'a-lib'