Angular (CLI) 6 — Публикация локальной библиотеки

Я сделал свою первую библиотеку, используя новую команду angular-cli: library.

После того, как я собрал библиотеку, я хотел импортировать ее в существующий проект (без публикации в npm), но, к сожалению, безуспешно. На самом деле, это работает, если я скопирую ее в node_modules, но тогда мне придется делать это каждый раз, когда я обновляю моя папка node_modules. Поэтому я хотел бы иметь папку (libs) в корневом каталоге, где я мог бы хранить и ссылаться на все мои (самодельные) библиотеки.

Я попытался создать папку и вставить в нее библиотеку, а также добавил параметры пути в tsconfig. Что приводит к ошибке «не удается найти модуль» (думаю, я что-то упустил в настройке cli, но не могу понять, что именно)

Знаете, чего мне не хватает? Или у вас есть другой подход к этому сценарию?

Спасибо :)

РЕДАКТИРОВАТЬ:

tsconfig.json:

{
 "compilerOptions": {
 // code omitted for brevity
  "paths": {
    "my-lib": ["./libs/my-lib"],
  }
}

импортировать в app.module.ts

import { MyLibraryModule } from 'my-lib'

person Beese    schedule 13.06.2018    source источник


Ответы (3)


Итак, я нашел решение. Я сохранил библиотеки в папке libs и сделал «npm install/absolute/path/to/my/library --save», что, похоже, является способом сделать это. (Это создает ссылку на локальную библиотеку вместо npm)

Надеюсь, это поможет кому-нибудь там;)

person Beese    schedule 19.06.2018

Вы также экспортировали «./libs/my-lib», чтобы сделать его доступным?

person Joel Wembo    schedule 18.06.2018
comment
Вы имеете в виду в файле index.ts? Я сделал: экспорт * из './myLibrary.module' - person Beese; 18.06.2018
comment
angular 2+ всегда требует добавления компонента как в Ngmodule, так и в экспортный appmodule. вы, вероятно, пропустили импорт в app.module или неправильно экспортировали. Это распространенная ошибка, вы ее исправите - person Joel Wembo; 18.06.2018

В моем случае проблема заключалась в том, что мой baseUrl был «src», а моя конфигурация «paths» была

"ngx-y-x": [
  "dist/ngx-y-x"
],
"ngx-y-x/*": [
  "dist/ngx-y-x/*"
]

Итак, из "src" вы пытаетесь найти "dist", которого там нет - мне нужно вернуться на один уровень назад.

"ngx-y-x": [
  "../dist/ngx-y-x"
],
"ngx-y-x/*": [
  "../dist/ngx-y-x/*"
]
person Vallerious    schedule 30.01.2020