簡體   English   中英

帶有 fs、緩沖區和流的 TypeORM 錯誤

[英]TypeORM errors with fs, buffer and stream

我的名字是 George,我是 angular 的初學者,我在使用TypescriptTypeORM 時遇到了問題。

當我編譯代碼時,給我這個錯誤

node_modules/typeorm/driver/mongodb/MongoConnectionOptions.d.ts(53,33):錯誤 TS2580:找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/MongoConnectionOptions.d.ts(58,33): 錯誤 TS2580: 找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/MongoConnectionOptions.d.ts(63,32): 錯誤 TS2580: 找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/MongoConnectionOptions.d.ts(68,33): 錯誤 TS2580: 找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(92,13)​​: 錯誤 TS2580: 找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(294,19):錯誤 TS2580:找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(298,15): 錯誤 TS2580: 找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(302,14): 錯誤 TS2580: 找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(306,15): 錯誤 TS2580: 找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(365,19): 錯誤 TS2580: 找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(369,15): 錯誤 TS2580: 找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(373,14):錯誤 TS2580:找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(377,15):錯誤 TS2580:找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(416,19): 錯誤 TS2580: 找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(420,15): 錯誤 TS2580: 找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(424,14): 錯誤 TS2580: 找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(428,15): 錯誤 TS2580: 找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(1591,25):錯誤 TS2580:找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(1636,45):錯誤 TS2580:找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(1647,19):錯誤 TS2580:找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(4233,34):錯誤 TS2580:找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(4317,21):錯誤 TS2580:找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(4478,34):錯誤 TS2580:找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(4526,21):錯誤 TS2580:找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(4595,34):錯誤 TS2580:找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/driver/mongodb/typings.d.ts(4627,21):錯誤 TS2580:找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig 中的類型字段。

node_modules/typeorm/platform/PlatformTools.d.ts(2,28): 錯誤 TS2307: 找不到模塊“fs”。

node_modules/typeorm/platform/PlatformTools.d.ts(4,36): 錯誤 TS2307: 找不到模塊“流”。

node_modules/typeorm/platform/PlatformTools.d.ts(38,44): 錯誤 TS2580: 找不到名稱“緩沖區”。 你需要為節點安裝類型定義嗎? 嘗試npm i @types/node ,然后將node添加到 tsconfig.** 中的 types 字段

這是我的 tsconfig 文件

{
  "compilerOptions": {
  "lib": [
     "es5",
     "es6",
     "dom"
  ], 
  "target": "es5",      
  "module": "commonjs",
  "moduleResolution": "node",
  "outDir": "./build",
  "emitDecoratorMetadata": true,
  "experimentalDecorators": true,
  "sourceMap": true,
  "types": [
     "node"
  ],
  "typeRoots": ["node_modules/@types"]
  
  },
 "exclude": [
    "node_modules",
  ]
}

為什么會出現這個錯誤?

我在 Ionic/Angular 7 和 AWS 放大項目中遇到了非常相似的錯誤。 這是錯誤輸出的一部分:

...
[ng] ERROR in node_modules/aws-sdk/clients/acm.d.ts(133,37): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
[ng] node_modules/aws-sdk/clients/acm.d.ts(135,38): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
[ng] node_modules/aws-sdk/clients/acm.d.ts(469,32): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
[ng] node_modules/aws-sdk/clients/acm.d.ts(471,32): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
[ng] node_modules/aws-sdk/clients/acmpca.d.ts(283,37): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
[ng] node_modules/aws-sdk/clients/acmpca.d.ts(285,38): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
[ng] node_modules/aws-sdk/clients/acmpca.d.ts(353,25): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
[ng] node_modules/aws-sdk/clients/apigateway.d.ts(1150,23): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
[ng] node_modules/aws-sdk/clients/appsync.d.ts(248,23): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
[ng] node_modules/aws-sdk/clients/clouddirectory.d.ts(1571,38): error TS2580: Cannot find name 'Buffer'. Do you need to install type definitions for node? Try `npm i @types/node`.
[ng] node_modules/aws-sdk/clients/cloudsearchdomain.d.ts(7,24): error TS2307: Cannot find module 'stream'.
...

不幸的是,按照錯誤提示的說明不是我的解決方案。 相反,我不得不編輯tsconfig.app.json文件並完全刪除空類型"types": []

因此它曾經是這樣的:

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "types": []
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ]
}

變成了這樣:

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app"
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ]
}

如果您在types 數組中有條目,那么就沒有問題,您不應該有前面描述的錯誤。

當數組為空時會出現這種情況。

在 tsconfig.app.json 中嘗試這樣

{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"types": [
  "node"
 ],
},
"exclude": [
 "test.ts",
 "**/*.spec.ts"
]}

您收到錯誤是因為您缺少聲明文件。 如果你想在 Typescript 中編程,你需要這些文件。

正如錯誤提示的那樣,您可以通過鍵入npm install @types/node來獲取這些文件。

更新

根據這個: 應用程序無法構建 - 找不到緩沖區 #4487

您可能需要在 tsconfig 的"types"中添加"node" ,如下所示:

  "compilerOptions": {
    [...]
    "types": ["node"]
  },

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM