baseUrl в tsconfig.app.json не переопределяет baseUrl в tsconfig.json - PullRequest
0 голосов
/ 13 мая 2019

В Angular 6 я использую ng generate application , так как у меня будет более одного приложения, которое должно совместно использовать некоторые библиотеки.При таком подходе структура папок выглядит следующим образом:

projects-> app1-> tsconfig.app.json

projects-> app2-> tsconfig.app.json

И tsconfig.json находится на том же уровне, что и проекты папка

Примечание : структура папок, подобная этойбудет создан, когда мы будем использовать ng g application в Angular 6.

Я хочу использовать относительные пути в моих компонентах или сервисах и т. д. для импорта, подобного этому:

import {ExampleService} из 'src / services / example.service';

вместо того, чтобы использовать его примерно так:

import {ExampleService} from '../../../services/example.service';

Как я могу предоставить эти функции для отдельных приложений, которые создаются, как указано выше?

Мой tsconfig.json вот так

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "es2015",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "downlevelIteration": true,
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ]
  }
}

А мой tsconfig.app.json вот так:

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

Я попытался дать так в тsconfig.app.json:

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

Но это не сработало.

Я хочу использовать относительные пути, используя src напрямую для устранения многоуровневого уровня.разрешение (../../../)

1 Ответ

0 голосов
/ 13 мая 2019

Вы должны взглянуть на paths вариант компилятора из tsconfig.json. С его помощью вы можете сделать это, например:

"compilerOptions": {
  "paths": {
    "@services/*": [
      "src/services/*"
    ]
  }
} 

Затем вы можете импортировать из любого файла в вашем проекте машинописного текста, используя этот путь:

import { ExampleService } from '@services/example.service';

Не нужно использовать @, вы можете назвать его как угодно

...