Упакуйте модуль npm, чтобы он мог работать во внешнем интерфейсе (например, с create-реагировать-приложение) `Вам может понадобиться соответствующий загрузчик для обработки этого типа файла`

Я написал модуль узла и опубликовал его как пакет узла. Это работает, когда я использую его в бэкэнд-приложениях (чистый nodejs, без babel или transpile).

Однако, когда я использую этот же модуль npm во внешнем приложении (в моем случае это "create-реагировать-приложение"), он ломается. Ниже приведена точная ошибка:

Module parse failed: Unexpected token (14:2)
You may need an appropriate loader to handle this file type.

Ошибка относится к моему использованию оператора распространения (...). Я бы предпочел не переписывать библиотеку, а скорее добавить какой-нибудь транспортер для упаковки моей библиотеки. Я не нашел четкого решения этого вопроса, все они очень запутанные.

Я попытался использовать rollupjs и https://github.com/insin/nwb. Кажется, ни то, ни другое мне не подходит.

Запустите мой код:

Вы можете установить библиотеку в приложение для создания реакции, используя npm i cbs-proxy-client@0.0.3, А затем добавьте строку const cbsProxyClient = require('cbs-proxy-client') или же import cbsProxyClient from 'cbs-proxy-client' к любому из ваших сценариев.

Совет будет оценен:)

1 ответ

Предполагается, что библиотека, используемая для внешнего интерфейса, будет упаковывать уже переданную версию исходного javascript. Для этого вы можете использовать свертку в качестве процесса сборки в своей библиотеке для создания файла пакета. Ты можешь использовать babel перенести ваш код для желаемой поддержки браузера. Допустим, файл пакета сохранен в dist/bundle.js, Теперь вы измените package.json, чтобы загрузить этот связанный файл как entry использование файла main параметр вpackage.json

Если вы собираете с помощью накопительного пакета или веб-пакета, легко не заметить, что связанный файл должен быть подготовлен как библиотека. Это означает, что импорт файла с использованием commonjs должен export правильные переменные. Типичная сборка веб-пакета удаляет такой экспорт, потому что он должен работать прямо в браузере. Этот блог находится в моих закладках под названием "шаги библиотеки js", так как я создавал свою первую библиотеку js.

Обратите внимание, что вам не нужно помещать сгенерированный файл в систему контроля версий. Вы можете использовать свойство npm files в package.json для упаковки ваших связанных файлов, игнорируя их в git.

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