React Native Storybook中process.env.STORYBOOK_ENABLED不识别问题求助
React Native Storybook环境变量STORYBOOK_ENABLED不识别的解决办法
1. 适配Windows终端的环境变量语法
Windows的CMD、PowerShell与Unix类系统的环境变量设置语法不同,原脚本里的STORYBOOK_ENABLED='true'在Windows下无法被识别,可针对性修改:
- 针对CMD终端:
"scripts": { ..., "storybook": "sb-rn-get-stories && set STORYBOOK_ENABLED=true && expo start" }
- 针对PowerShell终端:
"scripts": { ..., "storybook": "sb-rn-get-stories && $env:STORYBOOK_ENABLED='true'; expo start" }
2. 用cross-env实现跨终端兼容
如果需要同时兼容Windows和Unix类终端,安装cross-env统一处理环境变量:
先执行安装命令:
yarn add cross-env --dev
再修改package.json脚本:
"scripts": { ..., "storybook": "cross-env STORYBOOK_ENABLED=true sb-rn-get-stories && expo start" }
3. 临时硬编码验证流程(调试用)
若上述方法仍不生效,可先在app.config.js中硬编码值,确认Storybook核心流程是否正常:
export default ({ config }) => ({ ...config, name: "Storybook Tutorial Template", slug: "storybook-tutorial-template", extra: { storybookEnabled: true, // 临时硬编码 }, });
正常启动后再改回环境变量方式排查问题。
4. 调整环境变量设置的位置
若sb-rn-get-stories进程会阻断环境变量传递,将环境变量设置放在脚本最前端:
"scripts": { ..., "storybook": "cross-env STORYBOOK_ENABLED=true sb-rn-get-stories && expo start" }
内容的提问来源于stack exchange,提问作者Markus
相关产品推荐
相关产品推荐

