неожиданный идентификатор в файле .d.ts

Я использую typescript со следующими инструкциями по сборке.

"build:types": "tsc --emitDeclarationOnly",
"build:js": "babel src --out-dir lib --extensions \".ts,.tsx\" --source-maps inline",
"start": "npm run build:types && npm run build:js && node ./lib/bin/www.js"

Один из моих .ts файлов импортирует mongoose. При запуске npm start я получаю следующую ошибку. в файле .d.ts

\lib\models\v1\collection1.model.d.ts:1
(function (exports, require, module, __filename, __dirname) { import mongoose from 'mongoose';
                                                                     ^^^^^^^^

SyntaxError: Unexpected identifier

обратите внимание, что «@types/mongoose» и «mongoose» уже являются зависимостью.

содержимое collection1.model.d.ts выглядит следующим образом. который генерируется tsc --emitDeclarationOnly

import mongoose from 'mongoose';
declare const _default: mongoose.Model<mongoose.Document, {}>;
export default _default;

tsconfig.json

{
"compilerOptions": {
  "target": "es2015",                       
  "module": "commonjs",                     
  "declaration": true,                     
  "outDir": "./lib",                          
  "strict": false,                           
  "allowSyntheticDefaultImports": true,     
  "esModuleInterop": true,
},
"include": ["src"]

}

.babelrc

{
"presets": [
    "@babel/env",
    "@babel/typescript"
],
"plugins": [
    "@babel/proposal-class-properties",
    "@babel/proposal-object-rest-spread",
    "@babel/transform-runtime"
]

}


person ZNackasha    schedule 13.04.2019    source источник
comment
Возможный дубликат Импорт Mongoose для TypeScript не работает   -  person Matt    schedule 14.04.2019
comment
@Matt Спасибо, но это не сработало.   -  person ZNackasha    schedule 14.04.2019
comment
В файле .d.ts не должно быть функций. Это немного сбивает с толку. collection1.model.d.ts это ваш файл?   -  person Pace    schedule 14.04.2019
comment
@Pace я добавил содержимое файла .d.ts   -  person ZNackasha    schedule 14.04.2019
comment
Ok. Какова ваша цель в tsconfig.json? Как вы работаете с NodeJS? Какая версия. Похоже, что ваш скомпилированный JS включает import, что обычно происходит только в том случае, если вы ориентируетесь на ES6 или выше, но NodeJS еще не поддерживает import.   -  person Pace    schedule 14.04.2019
comment
@Pace добавил код tsconfig.json. Я запускаю его с помощью npm start   -  person ZNackasha    schedule 14.04.2019
comment
@Pace обратите внимание, что файл .d.ts создается с помощью команды tsc --emitDeclarationOnly   -  person ZNackasha    schedule 14.04.2019


Ответы (1)


Итак, проблема в том, что мне не следовало использовать babel, а вместо этого просто использовать tsc для генерации всего кода. Спасибо всем, кто помог

person ZNackasha    schedule 14.04.2019