Используйте модули npm, написанные на ES6, с реактивными скриптами
В моем проекте мне нужно использовать модуль npm ipfs-api с create-react-app
,
я могу бежать npm start
и запустить проект.
Но когда я пытаюсь построить проект с react-scripts build
выкидывает следующую ошибку
Не удалось скомпилировать.
Не удалось минимизировать код из этого файла:
./node_modules/ipfs-api/src/utils/module-config.js:7
Подробнее читайте здесь: https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#npm-run-build-fails-to-minify
В соответствии с предложениями в предоставленной ссылке в журнале ошибок, я попытался использовать,
"dependencies": {
...
"ipfs-api": "github:atfornes/js-ipfs-api#transpiled",
...
}
вместо "ipfs-api": "^22.0.0",
, Хотя это решенная ошибка для ipfs-api
другие зависимые модули (возможно, установлены с ipfsapi
) давала однотипные Failed to minify
ошибки которые я перестал их переносить вручную.
Есть ли способ перевести все модули зависимых узлов в es5, прежде чем использовать команду react-scripts build
? Или любой другой способ преодолеть эту проблему?
1 ответ
Обычно клиентские или платформо-независимые пакеты компилируются в ES5 при публикации. Если у вас возникла эта проблема, это может означать, что пакет не предназначен для клиентской стороны.
Как объясняется в документации, пакет содержит пакет для браузеров, который включает в себя полизаполненные функции узла (потоки и т. Д.), Необходимые для его запуска на стороне клиента.
Он должен использоваться как глобальный:
import 'ipfs-api/dist';
ipfs(...)
Есть ли способ перевести все модули зависимых узлов в es5, пока перед этим не будет использована команда act-scripts build?
Для этого потребуется удалить конфигурацию create-реагировать на приложение и настроить Webpack для правильной передачи этого пакета. Этот пример из документации показывает, как специфичные для узла части должны быть настроены для связывания для браузеров.