Опубликованная библиотека angular не имеет импортированных модулей на npmjs

Я хочу опубликовать простую библиотеку angular в npmjs. Итак, шаги, которые я выполнил, были:

  1. Создал проект:

    ng new my-project
    
  2. Создал библиотеку:

    ng g library my-lib
    
  3. Создал модуль в библиотеку:

    ng g module module1 --project my-lib
    
  4. Напишите код модуля:

  5. В файл public_api.ts добавлено объявление библиотеки:

    export * from './lib/module1/module1.module';
    
  6. Соберите и опубликуйте библиотеку:

    ng build my-lib
    cd dist/my-lib
    npm publish
    

Когда я тестирую библиотеку локально, она работает, и в библиотеке есть экспортированный модуль.

если я побегу

npm pack

а затем импортируйте библиотеку с помощью

npm install --save path/to/my-lib.tgz 

в другом проекте он работает и в библиотеке есть экспортированный модуль.

НО

когда я устанавливаю библиотеку из репозитория npm с помощью

npm install --save my-lib 

загрузка и установка библиотеки прошли нормально, но это похоже на то, что библиотека была пустой, поэтому нужный модуль отсутствует, и если я попытаюсь импортировать модуль в проект, произойдет сбой, и я получаю сообщение об ошибке, говорящее, что модуль не существует.

Как я могу опубликовать библиотеку с модулем или модулями, которые я хочу оставить доступными?


person Cesar Leonardo Ochoa Contreras    schedule 03.04.2019    source источник
comment
Сначала вы хотели бы проверить модуль, который вы получаете от NPM в node_module. Посмотрите, содержат ли они какую-либо папку/код или нет, прежде чем пытаться использовать/импортировать ее.   -  person qkhanhpro    schedule 03.04.2019
comment
Я проверил папку node_modules. у него ничего нет, когда я импортирую библиотеку из репозитория npm, так что модуль никогда не экспортировался   -  person Cesar Leonardo Ochoa Contreras    schedule 03.04.2019
comment
Затем вам следует пересмотреть ту часть, где вы публикуете модуль в NPM. Вы указали правильный каталог... и т.д., и т.д... Может быть, сначала попробуйте опубликовать один случайный файл js, чтобы увидеть, работает ли он?   -  person qkhanhpro    schedule 03.04.2019
comment
Это правильный путь (или каталог). Я пытался несколько раз. Дело в тесте с прохождением команды npm pack и сбоем пути публикации npm. Это так странно.   -  person Cesar Leonardo Ochoa Contreras    schedule 03.04.2019


Ответы (1)


Я решил проблему. На 6-м шаге запустите:

ng build my-lib
cd dist/my-lib
npm pack
npm publish my-lib-0.0.1.tgz

теперь он опубликован и содержит все, что мне нужно, и я могу без проблем запустить npm install из репозитория npm. Решение заключалось в простом запуске команды npm pack и публикации файла tgz вместо файла dist.

person Cesar Leonardo Ochoa Contreras    schedule 04.04.2019