Использовать файл сценария JS в библиотеке angular

Я пытаюсь создать библиотеку angular, в которой одна из служб должна использовать файл web-sdk.js, импортируя его. Все работает отлично, когда я создаю эту службу внутри самого приложения, а не в библиотеке, но есть некоторые причины, по которым я бы предпочел, чтобы эта служба была внутри библиотеки.

Оператор импорта, который работает в приложении, но не в библиотеке.

import sdk from '../../assets/web-sdk.js';

В библиотеке angular я также пытался ввести полный путь к файлу js, но я просто получаю сообщение об ошибке default' is not exported by...

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
0
85
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Я также столкнулся с той же проблемой, вы должны добавить файл сценария js в node_modules и импортировать его оттуда.

создайте папку, содержащую ваш файл js, на уровне package.json

предположим папку custom-sdk,

затем в package.json внутри скриптов добавьте эту строку

"postinstall": "rm -r -f node_modules/@custom-sdk && cp custom-sdk node_modules/@custom-sdk -r"

эта команда создаст имя папки @custom-sdk в вашем node_modules,

эта команда после установки будет запускаться после «npm i» автоматически, поэтому вам нужно использовать «npm i» один раз, прежде чем использовать ее в библиотеке.

а затем импортировать в библиотеку, как это

import sdk from '@custom-sdk/web-sdk.js';

Это сработает!!!

команда postinstall будет запускаться в терминале bash, только если вы запустите в других терминалах, она выдаст ошибку.

Спасибо за ответ. Вскоре после публикации вопроса я также смог найти решение. Я создал папку с sdk, создал файл d.ts и добавил package.json (не уверен, что эти два действительно необходимы) и добавил эту папку в качестве зависимости к файлу package.json.

DuckDrick 14.10.2022 16:48
Ответ принят как подходящий

Я смог решить эту проблему, создав папку с файлом JS и файлом .d.ts и добавив эту папку в список зависимостей package.json — "sdk": "file:./external/sdk".

После запуска yarn install я смог использовать библиотеку JS, импортировав ее — import sdk from 'sdk';

Другие вопросы по теме