#node.js #angular #typescript
#node.js #angular #typescript
Вопрос:
Меня зовут Джордж, и я начинающий программист в angular, и у меня проблемы с Typescript и TypeORM.
Когда я компилирую код, выдает мне эти ошибки
node_modules/typeorm/driver/mongodb/MongoConnectionOptions.d.ts(53,33): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/MongoConnectionOptions.d.ts(58,33): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/MongoConnectionOptions.d.ts(63,32): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/MongoConnectionOptions.d.ts(68,33): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(92,13): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(294,19): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(298,15): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(302,14): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(306,15): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(365,19): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(369,15): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(373,14): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(377,15): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(416,19): error TS2580: Cannot find name ‘Buffer’. Do you need to install type definitions for node? Try
npm i @types/node
and then addnode
to the types field in your tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(420,15): error TS2580: Cannot find name ‘Buffer’. Do you need to install type definitions for node? Try
npm i @types/node
and then addnode
to the types field in your tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(424,14): error TS2580: Cannot find name ‘Buffer’. Do you need to install type definitions for node? Try
npm i @types/node
and then addnode
to the types field in your tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(428,15): error TS2580: Cannot find name ‘Buffer’. Do you need to install type definitions for node? Try
npm i @types/node
and then addnode
to the types field in your tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(1591,25): error TS2580: Cannot find name ‘Buffer’. Do you need to install type definitions for node? Try
npm i @types/node
and then addnode
to the types field in your tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(1636,45): error TS2580: Cannot find name ‘Buffer’. Do you need to install type definitions for node? Try
npm i @types/node
and then addnode
to the types field in your tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(1647,19): error TS2580: Cannot find name ‘Buffer’. Do you need to install type definitions for node? Try
npm i @types/node
and then addnode
to the types field in your tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(4233,34): error TS2580: Cannot find name ‘Buffer’. Do you need to install type definitions for node? Try
npm i @types/node
and then addnode
to the types field in your tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(4317,21): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(4478, 34): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(4526,21): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(4595,34): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.node_modules/typeorm/driver/mongodb/typings.d.ts(4627,21): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
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: не удается найти модуль ‘stream’.
node_modules/typeorm/platform/PlatformTools.d.ts(38,44): ошибка TS2580: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.**
это мой файл 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",
]
}
Почему эта ошибка?
Ответ №1:
У меня была очень похожая ошибка с проектом Ionic / Angular 7 и AWS amplify. Вот часть выходных данных об ошибке:
...
[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, то проблемы нет, и у вас не должно возникнуть ранее описанной ошибки.
Это появляется, когда массив пуст.
Комментарии:
1. @OP в принципе, пустой
"types": []
intsconfig.app.json
может перезаписываться,tsconfig.json
поэтому удаление"types": []
работает. Альтернативно помещать типы непосредственно вtsconfig.app.json
, а не вtsconfig.json
Ответ №2:
попробуйте подобное в tsconfig.app.json
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"types": [
"node"
],
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]}
Ответ №3:
Вы получаете ошибки, потому что у вас отсутствуют файлы объявлений. Вам нужны эти файлы, если вы хотите программировать на Typescript.
Как следует из ошибок, вы можете получить эти файлы, введя npm install @types/node
.
Обновить
Согласно этому: Приложению не удается выполнить сборку — буфер не найден #4487
Возможно, вам придется добавить "node"
в свой "types"
в tsconfig, вот так:
"compilerOptions": {
[...]
"types": ["node"]
},
Комментарии:
1. Если бы вы могли показать нам часть вашего кода, мы могли бы взглянуть на него. У вас все еще могут возникнуть проблемы из-за отсутствия импорта.
2. это вообще не работает. ни установить, ни переустановить — у меня такая же ошибка с MongoDB, которая мне не нужна — typeorm берет все материалы и не заботится, нужно вам это или нет. node_modules/typeorm/driver/mongodb /MongoConnectionOptions.d.ts:74:32 — ошибка TS2591: не удается найти имя ‘Buffer’. Вам нужно установить определения типов для узла? Попробуйте,
npm i @types/node
а затем добавьтеnode
в поле типы в вашем tsconfig.3. Добавление «types»: [«node»] в параметры компилятора имело для меня решающее значение.