打字稿编译器找不到带有纱线的节点-找不到“节点”的类型定义文件

Posted

技术标签:

【中文标题】打字稿编译器找不到带有纱线的节点-找不到“节点”的类型定义文件【英文标题】:Typescript compiler can't find node with yarn - Cannot find type definition file for 'node' 【发布时间】:2021-10-27 05:56:32 【问题描述】:

我已经安装了@types/node。我正在使用纱线 2 (PnP)。好像 Typescript 找不到 @types/node 包?

运行yarn build,构建脚本为webpack 显示有关无法解析模块(路径、缓冲区等)的错误

运行tsc 显示TS2688: Cannot find type definition file for 'node'.

运行 'ts-node' 但确实可以正常工作。

我的 tsconfig.json 如下:


  "compilerOptions": 
    "outDir": "./dist",
    "rootDir": "./src",
    "module": "commonjs",
    "target": "es6",
    "jsx": "react",
    "allowJs": true,
    "moduleResolution": "node",
    "esModuleInterop": true,
    "lib": [
      "ES2020",
      "DOM"
    ],
    "types": ["node"]
  ,
  "include": [
    "src/**/*"
  ]

我的 webpack.config.js

module.exports = 
  mode: "development",
  devtool: "inline-source-map",
  entry: "./src/server.ts",
  output: 
    filename: "bundle.js"
  ,
  resolve: 
    extensions: [".tsx", ".ts", ".js"]
  ,
  module: 
    rules: [
      
        test: /\.tsx?$/,
        use: [
          loader: 'ts-loader',
          options: 
            transpileOnly: true,
            experimentalWatchApi: true,
            onlyCompileBundledFiles: true,
          ,
        ],
        exclude: /node_modules/,
      
    ]
  
;

【问题讨论】:

【参考方案1】:

我通过重新安装 node.js 在我的计算机上解决了这个问题,因为程序 yarn 所依赖的。只需下载 node.js 并运行安装程序 - 它与 yarn 包无关,尽管我尝试了各种 yarn 命令,甚至清除缓存,作为项目之前编译和运行的难题。

【讨论】:

【参考方案2】:

似乎问题在于 tsc (Typescript v4.3.5) 目前不支持 PnP,需要@yarnpkg/pnpify tool 作为解决方法。

【讨论】:

以上是关于打字稿编译器找不到带有纱线的节点-找不到“节点”的类型定义文件的主要内容,如果未能解决你的问题,请参考以下文章

打字稿:具有有效打字的“找不到模块”

在 Angular 7 中找不到名称“require”(打字稿 3.1.3)

打字稿编译器:找不到名称“地图”

成功解决后,带有打字稿的量角器找不到模块“量角器”

带有打字稿的VueJS单文件组件:找不到模块stuff.vue

Jest,ts-jest,带有 ES 模块导入的打字稿:找不到模块