Упакуйте модуль 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.