打字稿错误“找不到名称'require'。并且找不到名称'process'。”

Jos*_*lez 2 compiler-errors typescript

打字稿错误“找不到名称'require'。并且找不到名称'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"
  ]
Run Code Online (Sandbox Code Playgroud)

}

Lam*_*iry 5

默认情况下,不捆绑Node.js标准库的类型定义。您需要通过@types/node软件包自己安装它们:

npm install --save @types/node
Run Code Online (Sandbox Code Playgroud)

moduleResolution选项控制编译器如何处理import语句,并且与Node.js标准库无关。

要修复“找不到名称'require'”错误,您还应该将所有CommonJS导入转换为使用TypeScript导入语法:

// Before
var process = require('process');

// After
import process = require('process');
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参见TypeScript手册的“ 从JavaScript迁移”部分。