Я пытаюсь создать библиотеку angular, в которой одна из служб должна использовать файл web-sdk.js, импортируя его. Все работает отлично, когда я создаю эту службу внутри самого приложения, а не в библиотеке, но есть некоторые причины, по которым я бы предпочел, чтобы эта служба была внутри библиотеки.
Оператор импорта, который работает в приложении, но не в библиотеке.
import sdk from '../../assets/web-sdk.js';
В библиотеке angular я также пытался ввести полный путь к файлу js, но я просто получаю сообщение об ошибке default' is not exported by...





Я также столкнулся с той же проблемой, вы должны добавить файл сценария 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, только если вы запустите в других терминалах, она выдаст ошибку.
Я смог решить эту проблему, создав папку с файлом JS и файлом .d.ts и добавив эту папку в список зависимостей package.json — "sdk": "file:./external/sdk".
После запуска yarn install я смог использовать библиотеку JS, импортировав ее — import sdk from 'sdk';
Спасибо за ответ. Вскоре после публикации вопроса я также смог найти решение. Я создал папку с sdk, создал файл d.ts и добавил package.json (не уверен, что эти два действительно необходимы) и добавил эту папку в качестве зависимости к файлу package.json.