Я работаю над проектом изоморфного реагирования и пытаюсь использовать SDK узла Stripe (по сравнению с их REST API) в модуле Redux. Когда Webpack создает проект, я получаю сообщение об ошибке: Module not found: Error: Cannot resolve module 'child_process'
. Я знаю, что это модуль только для узлов, поэтому я не могу использовать его в браузере (я хочу, чтобы вызовы API Stripe начинались с серверной стороны), я просто не знаю, как обеспечить, чтобы узел Stripe node_module не был упакован в в файл приложения app.js.
Пока я импортирую модуль stripe в модуль redux, со стороны JSX, я импортирую только интерфейс IStripe из stripe.model и диспетчера getPlansList из моего модуля сокращения полосы.
Итак, мой вопрос заключается в том, как использовать узловые модули только в изоморфном проекте React? Нужно ли мне запускать отдельный процесс узла только для сервера, который обрабатывает мои вызовы Stripe? Или можно ли включить эту функциональность в мое изоморфное приложение?
Благодарю!
Посмотрите на проблему, вы не должны запускать stripe-node
в браузере.
Вы можете настроить alias
в конфигурации webpack:
{
resolve: {
alias: {
'stripe': './src/stripe-browser'
}
}
}
Если вам не нужно использовать Stripe в браузере, вы можете просто создать пустой файловый stripe-browser
в качестве заглушки для API.
Если вы собираетесь использовать API в браузере, вам необходимо создать адаптер для клиентской библиотеки Stripe.js.
alias
в конфигурации webpack
, он влияет только на сборку веб-пакета. Таким образом, вы можете запустить свой код с node
он будет работать как положено.