У меня есть приложение nodejs, в котором я представляю TypeORM для уровня хранилища.
Я боролся уже несколько дней с неожиданными ошибками токенов в зависимостях node_modules.
Чтобы отследить основную причину, я создал очень простое приложение на основе примера приложения, описанного в документации TypeORM. Я добавил dotenv в качестве зависимости и очень простого файла среды, и я действительно получаю сообщение об ошибке в ... / dotenv / types / test.ts в тот момент, когда пытаюсь подключиться к БД с помощью TypeORM. Я понятия не имею, почему приложение пытается проанализировать этот файл.
Я попытался запустить приложение с помощью ts-node, а также скомпилировать код с помощью tsc и запустить приложение напрямую. Тот же результат. Я также попробовал несколько целей в tsconfig.json и попытался запустить проект с помощью esm. Пока не повезло.
Я, должно быть, делаю что-то не так, и я надеюсь, что кто-то здесь может указать, что это такое. Я добавил базовое приложение, которое выдает ошибку в github repo
Вот ошибка:
/Users/quintmouthaan/projects/weareeves/eves-api/node_modules/dotenv/types/test.ts:1
(function (exports, require, module, __filename, __dirname) { import { config, parse } from "dotenv";
^
SyntaxError: Unexpected token {
at new Script (vm.js:83:7)
at createScript (vm.js:267:10)
at Object.runInThisContext (vm.js:319:10)
at Module._compile (internal/modules/cjs/loader.js:685:28)
at Module._extensions..js (internal/modules/cjs/loader.js:733:10)
at Object.require.extensions.(anonymous function) [as .ts] (/Users/quintmouthaan/projects/prj/api/node_modules/ts-node/src/index.ts:384:14)
at Module.load (internal/modules/cjs/loader.js:620:32)
at tryModuleLoad (internal/modules/cjs/loader.js:560:12)
at Function.Module._load (internal/modules/cjs/loader.js:552:3)
at Module.require (internal/modules/cjs/loader.js:658:17)
А вот мой файл tsconfig.json:
{
"compilerOptions": {
"lib": [
"es5",
"es6"
],
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"outDir": "./build",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true,
"allowJs": true
}
}
и файл ormconfig.json:
{
"type": "postgres",
"host": "localhost",
"port": 5432,
"username": "postgres",
"password": "",
"database": "db",
"synchronize": true,
"logging": false,
"entities": [
"src/entity/**/*.ts"
],
"migrations": [
"src/migration/**/*.ts"
],
"subscribers": [
"src/subscriber/**/*.ts"
],
"cli": {
"entitiesDir": "src/entity",
"migrationsDir": "src/migration",
"subscribersDir": "src/subscriber"
}
}
и, наконец, файл package.json:
{
"name": "TestTypeORM",
"version": "0.0.1",
"description": "Awesome project developed with TypeORM.",
"devDependencies": {
"ts-node": "3.3.0",
"@types/node": "^8.0.29",
"typescript": "3.3.3333"
},
"dependencies": {
"dotenv": "^8.2.0",
"pg": "^7.3.0",
"reflect-metadata": "^0.1.10",
"typeorm": "0.2.20"
},
"scripts": {
"start": "ts-node src/index.ts"
}
}