打字稿错误"找不到姓名'要求'。并且找不到名称' process'。"

时间:2018-02-13 00:08:17

标签: typescript compiler-errors

打字稿错误"找不到姓名'要求'。并且找不到名称' 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"
  ]

}

2 个答案:

答案 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" ]
}