Угловой 6 / объявить путь для библиотеки в tsconfig.lib.json - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь настроить пути для библиотеки Angular 6 (я успешно настроил пути для предыдущего проекта Angular)

Вот что работает для моего предыдущего приложения в файле tsconfig.json:

"compilerOptions": {
    [...]
    "baseUrl": "src",
    "paths": {
      "@class/*": [ "app/class/*" ],
      "@services/*": [ "app/services/*" ],
      "@views/*": [ "app/views/*" ]
    }
}

, а затем используйте его, например:

Import { Item } form '@class/item';

В моем новом приложении я пытаюсь сделать то же самое в файле tsconfig.**lib**.json:

"compilerOptions": {
    [...]
    "baseUrl": "src",
    "paths": {
      "@class/*": [ "lib/class/*" ],
      "@services/*": [ "lib/services/*" ],
      "@views/*": [ "lib/views/*" ]
    }
}

Я пытался импортировать класс в компонент для моей библиотеки, как это, но он не работает (VSCode не может найти файл):

Import { Item } form '@class/item';

Обратите внимание, что оператор import в основном проекте работает:

Import { Item } from 'myLibrary';

Есть идеи о том, что у меня плохо получается?

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 04 марта 2019

Это из моего комментария выше, если вы видите, что это правильный ответ.

Angular будет использовать файл tsconfig.json, который настроен в файле angular.json в **architect --> build --> options --> tsconfig**. Принимая во внимание, что VS Code использует файл tsconfig.json, который находится внизу рабочей области. Вам нужно добавить пути в обеих конфигурациях, чтобы заставить их работать правильно, или изменить проект, чтобы использовать базовый файл tsconfig.json в файле angular.json.

Файл tsconfig.json имеет свойство, которое расширяется, и будет принимать другой файл за основу и переопределять все, что объявлено в файле tsconfig.lib.json. Поэтому, если у вас есть пути, объявленные в файле tsconfig.lib.json, то пути в файле tsconfig.json больше не нужны.

РЕДАКТИРОВАТЬ 29.7.2019 tsconfig.json

"baseUrl": "src",
"paths": {
  "@ProjectName1/*": ["../projects/ProjectName1/src/app/modules/*"],
  "@Projectname2/*": ["../projects/Projectname2/src/app/modules/*"],
  "@environment/*": ["environments/*"],
  "project-core": ["../dist/project/project-core"],
  "project-core/*": ["../dist/project/project-core/*"]
}

И у меня нет путей, объявленных в tsconfig.app.json, потому что это будет так же, как в tsconfig.json. Так что это отличается от моего предыдущего ответа, потому что у меня есть пути только в tsconfig.json.

...