我有一个安装了一些模块的 Node 项目。
"dependencies": {
"@types/express": "^4.11.1",
"@types/express-fileupload": "^0.1.1",
"@types/mongodb": "^3.0.12",
"@types/npm": "^2.0.29",
"express": "^4.16.3",
"express-fileupload": "^0.4.0",
"log4js": "^2.5.3",
"mongodb": "^3.0.5"
}
当我使用 tsc -p 调用 typescript 编译器时。我收到以下错误:
app.ts(5,24): error TS2307: Cannot find module 'log4js'.
我可以通过将以下内容添加到 tsconfig.json 中的编译器选项来成功编译它:
"moduleResolution": "node"
但是为什么在默认模块解析下,log4js是唯一没有找到的模块呢?由于所有模块都在同一个文件夹中,我希望编译器能够找到所有模块,或者找不到它们。
最佳答案
log4js
在其 package.json
中指定了类型,但 classic
不会从非 @types
文件夹读取 package.json
条目。
顾名思义,这是“经典”行为,而不是某人可能真正想要的行为,并且主要是出于向后兼容的原因而提供的。
关于node.js - 为什么经典模块解析无法找到我已安装的模块之一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49780826/