Вопрос или проблема
Я пытаюсь настроить новое рабочее пространство bit с приложениями на express-server и получаю ошибку при экспорте в облачное пространство bit, даже без каких-либо модификаций компонента, созданного по шаблону. Я могу добавить компонент из шаблона, могу собирать, запускать, делать снимки и тегировать, статус показывает OK, однако когда я запускаю bit export
, у меня возникает ошибка:
Невозможно прочитать свойства null (чтение 'billingProviderId')
Замечание: другие компоненты экспортируются нормально. Я успешно создал/сделал снимок и экспортировал новые компоненты на основе шаблонов ‘module’ и ‘node-env’.
Запуск с –log debug показывает, что ошибка вызвана здесь:
[15:57:04.201]: Http.pushToCentralHub, начато. url: https://api.v2.bit.cloud/exporter/api/put. всего объектов 9
⠍⠁ экспорт компонента[15:57:04.694]: Http.pushToCentralHub, завершено. url: https://api.v2.bit.cloud/exporter/api/put, статус 200 статусТекст OK
[15:57:04.696]: http, сообщение от центрального хаба: Невозможно прочитать свойства null (чтение 'billingProviderId')
[15:57:04.700]: получена ошибка от команды export: UnexpectedNetworkError: Невозможно прочитать свойства null (чтение 'billingProviderId')
err: {
"type": "UnexpectedNetworkError",
"message": "Невозможно прочитать свойства null (чтение 'billingProviderId')",
"stack":
UnexpectedNetworkError: Невозможно прочитать свойства null (чтение 'billingProviderId')
at Http.pushToCentralHub (/Users/riverhume/.bvm/versions/1.8.52/bit-1.8.52/node_modules/@teambit/legacy/dist/scope/network/http/http.js:333:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async pushAllToCentralHub (/Users/riverhume/.bvm/versions/1.8.52/bit-1.8.52/node_modules/@teambit/export/dist/export.main.runtime.js:561:27)
at async ExportMain.exportMany (/Users/riverhume/.bvm/versions/1.8.52/bit-1.8.52/node_modules/@teambit/export/dist/export.main.runtime.js:641:27)
at async ExportMain.exportComponents (/Users/riverhume/.bvm/versions/1.8.52/bit-1.8.52/node_modules/@teambit/export/dist/export.main.runtime.js:321:9)
at async ExportMain.export (/Users/riverhume/.bvm/versions/1.8.52/bit-1.8.52/node_modules/@teambit/export/dist/export.main.runtime.js:250:9)
at async ExportCmd.report (/Users/riverhume/.bvm/versions/1.8.52/bit-1.8.52/node_modules/@teambit/export/dist/export-cmd.js:85:9)
at async CommandRunner.runReportHandler (/Users/riverhume/.bvm/versions/1.8.52/bit-1.8.52/node_modules/@teambit/cli/dist/command-runner.js:130:20)
at async CommandRunner.runCommand (/Users/riverhume/.bvm/versions/1.8.52/bit-1.8.52/node_modules/@teambit/cli/dist/command-runner.js:85:16)
at async CLIMain.run (/Users/riverhume/.bvm/versions/1.8.52/bit-1.8.52/node_modules/@teambit/cli/dist/cli.main.runtime.js:230:5)
at async runCLI (/Users/riverhume/.bvm/versions/1.8.52/bit-1.8.52/node_modules/@teambit/bit/dist/load-bit.js:428:3)
at async initApp (/Users/riverhume/.bvm/versions/1.8.52/bit-1.8.52/node_modules/@teambit/bit/dist/app.js:63:5)
"isUserError": true,
"name": "UnexpectedNetworkError"
}
Невозможно прочитать свойства null (чтение 'billingProviderId')
[15:57:04.788]: [+] CLI-OUTPUT: Невозможно прочитать свойства null (чтение 'billingProviderId')
[15:57:04.788]: [*] команда "export" завершилась с кодом ошибки 1
Шаги для воспроизведения (в пустом каталоге):
bit init --default-scope <orgname.scopename>
bit create express-server express-test --env <orgname.scopename>
bit snap -m "1-й снимок"
bit login
bit export
Замечание: та же ошибка возникает при использовании tag вместо snap
Локальная среда:
- node –version
v20.17.0 - bit –version
1.8.52 - pnpm –version
9.10.0 - npm bvm –version
10.8.2
Ожидалось: успешная отправка в bit.cloud успешного снимка
Результат: ошибка “Невозможно прочитать свойства null (чтение ‘billingProviderId’)”
Спасибо!
Ответ или решение
Проблема, с которой вы столкнулись, связана с попыткой экспорта компонента, созданного на основе шаблона express-server
, и ошибкой, указывающей на недоступность billingProviderId
. Давайте рассмотрим решение данной проблемы в несколько этапов.
1. Проверьте конфигурацию вашего рабочего пространства
Убедитесь, что в файле конфигурации bit.json
вашего рабочего пространства правильно указаны настройки для подключения к Bit Cloud. Необходима корректная аутентификация и наличие прав на экспорт в указанный вами scope.
2. Актуализируйте вашу среду
Поскольку вы используете Node.js версии 20.17.0
, убедитесь, что все библиотеки и пакеты обновлены до последних стабильных версий. Вы можете выполнить следующие команды:
npm install -g bit-bin
3. Обновите Bit CLI
Проверьте, есть ли обновления для Bit на данный момент. Возможно, в более новых версиях уже исправлены баги, которые могут быть источником вашей проблемы:
bit update
4. Убедитесь в наличии прав доступа
Если вы используете организационный scope, убедитесь, что ваш пользователь действительно имеет необходимые права для экспорта компонентов. Это можно проверить в настройках вашего аккаунта на Bit Cloud.
5. Проверьте наличие ошибок в коде
Иногда ошибка может быть вызвана несоответствием полей, указываемых в коде компонента. Пожалуйста, проверьте код вашего компонента на наличие кода, который ссылается на billingProviderId
. Если этот код присутствует, убедитесь, что он обернут в конструкции проверки на наличие значения (например, if (object && object.billingProviderId)
).
6. Логи и отладка
Использование флага --log debug
в команде может помочь вам более подробно увидеть, на каком этапе происходит сбой. Если проблема сохраняется, вы можете обратиться к сообществу Bit или создать запрос в службу поддержки, приложив логи с ошибками.
7. Обратитесь в службу поддержки
Если ни одно из вышеперечисленных решений не помогло, рекомендуется создать тикет в службу поддержки Bit с полным описанием вашей проблемы, включая шаги воспроизведения и логи ошибок. Это может помочь разработчикам Bit быстрее идентифицировать и решить вашу проблему.
Заключение
Сложности с billingProviderId
, скорее всего, связаны либо с настройками вашего аккаунта, либо с проблемами на стороне сервера Bit. Следуя данным шагам, вы сможете концептуально устранить источник ошибочной ситуации и обеспечить корректный экспорт компонентов. Если возникнут дополнительные вопросы, не стесняйтесь их задавать.