打字稿错误"找不到姓名'要求'。并且找不到名称' process'。"即使它已经将参数" moduleResolution":" node" 定义到其编译器选项中。
以下是我目前的tsconfig.json
{
"compilerOptions": {
"target": "es2015",
"lib": ["es2015", "es6"],
"types": ["reflect-metadata"],
"moduleResolution": "node",
"module": "commonjs",
"rootDir": "src",
"outDir": "./build",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true,
"declaration": false
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules"
]
}
答案 0 :(得分:4)
默认情况下,不捆绑Node.js标准库的类型定义。您需要通过@types/node
包自己安装它们:
npm install --save @types/node
moduleResolution
选项控制how the compiler handles import statements,与Node.js标准库无关。
要修复"找不到姓名'要求'"错误,您还应该转换任何CommonJS导入以使用TypeScript导入语法:
// Before
var process = require('process');
// After
import process = require('process');
有关详细信息,请参阅TypeScript手册的Migrating from JavaScript部分。
答案 1 :(得分:1)
对我来说,可以通过在angular 8的angular编译器选项中添加 types 来解决。
"angularCompilerOptions": {
"fullTemplateTypeCheck": true,
"strictInjectionParameters": true,
"types": [ "node" ]
}