Автоматический импорт из локальной библиотеки Angular включает "public-api" и приложение breaks - PullRequest
1 голос
/ 29 марта 2019

У меня есть библиотека Angular 7, которая должна использоваться моим приложением, как в папке проектов. Когда я автоматически импортирую из скомпилированной библиотеки, Visual Studio Code использует путь к публичной поверхности API в ссылке следующим образом:

import { ModuleName } from '@org/lib/public-api';

и это вызывает ошибку компиляции в приложении:

ERROR in src/app/app.module.ts(9,28): Error during template compile of 'AppModule'
[2]   Could not resolve @org/lib relative to [object Object]..

Когда я вручную исправляю импорт, чтобы удалить часть 'public-api' следующим образом:

import { ModuleName } from '@org/lib';

приложение перекомпилируется и работает нормально. Я не думаю, что я изменил какие-либо конфигурации по умолчанию. Вот так выглядит мой tsconfig в корне рабочего пространства, а библиотеки tsconfigs и приложения являются стандартными расширениями, которые поставляются с ng generate

Рабочая область tsconfig.json

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

Кто-нибудь сталкивался с этим раньше?

1 Ответ

0 голосов
/ 17 апреля 2019

Если кто-то сталкивается с этим позже, ответ можно найти, посмотрев, как угловой проект настроен для локальной разработки. Наряду с их файлом public_api у них есть index.ts, который просто имеет

export * from './public_api';

Это позволяет вам создавать перекрестные ссылки между библиотеками во время разработки.

...