путь к tsconfig не найден - PullRequest
0 голосов
/ 25 апреля 2020

Я работаю над приложением nodejs и хочу настроить свой путь в tsconfig. json, но у меня возникают проблемы с настройкой пути. У меня продолжает появляться ошибка Error: Cannot find module '@environment'. в чем может быть проблема?

tsconfig

  {
    "compilerOptions": {
      "resolveJsonModule" : true,
      "target": "es6",
      "module": "commonjs" ,
      "lib": [
        "dom",
        "es6"
      ],
      "outDir": "build",
      "rootDir": "src",
      "removeComments": true ,
      "strict": true,
      "noImplicitAny": true,
      "baseUrl": "./",
      "paths": {
        "@lime/*": ["src/*"],
        "@environment": ["src/config/environment.ts"],
      },
      "esModuleInterop": true 
    }
  }

Дерево проекта:

src - config - environment.ts
    ...
    - index.js
package.json
tsconfig.json
...

environment.ts

import * as dotenv from 'dotenv';

dotenv.config();

interface Environment {
    port: number | string,
    baseUrl: string,
    databaseUri: string,
}

export const environment: Environment = {
    port: process.env.PORT!,
    baseUrl: process.env.BASE_URL!,
    databaseUri: process.env.DATABASE_URI!
}

in index.ts я импортировал environment.ts как import { environment } from '@environment'; пожалуйста, что может быть не так?

Ответы [ 2 ]

1 голос
/ 26 апреля 2020

Я не уверен, я проверяю документацию. Похоже, дорожки должны быть реж. Пожалуйста, попробуйте эту комбинацию.

{

      "baseUrl": "./",
      "paths": {
        "@lime/*": ["src/*"],
        "@environment": ["src/config/"],
      },
      "esModuleInterop": true 
    }
  }

и импортируйте как:

import { environment } from '@environment/environment'

0 голосов
/ 26 апреля 2020

Если вы пытаетесь выполнить это напрямую с node или ts-node, вы должны знать, что пути tsconfig по умолчанию не разрешаются узлом. Если вы используете tsc для сборки (а не webpack или аналогичный для создания пакета), вы можете добавить к своим зависимостям tsconfig-paths следующим образом:

npm install --save tsconfig-paths

И затем выполните код с помощью:

node -r tsconfig-paths/register dist/index.js

Если вы используете код TS непосредственно с ts-node, вы можете использовать:

ts-node -r tsconfig-paths/register src/index.ts

В производстве предлагается вместо этого связать источник с например, для создания веб-пакета и использования плагина, например tsconfig-paths-webpack-plugin), для определения путей при объединении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...