Yarn:如何更新package.json指定依赖并同步最低版本要求
Next.js升级后Storybook失效修复及版本范围同步方案
问题背景
将Next.js升级到"next": "^13.5.6"后,出现Storybook失效问题,需通过升级全量Storybook相关包解决。
无效配置(无法适配新版Next.js)
此前使用的版本范围无法解决兼容性问题:
"@storybook/nextjs": "^7.4.0", "@storybook/react": "^7.4.0", ...
有效修复配置
升级到以下版本后问题解决:
"@storybook/nextjs": "^7.6.17", "@storybook/react": "^7.6.17", ...
当前遗留问题
尽管yarn.lock已更新至兼容的新版本,但package.json中的版本范围仍允许安装7.4.0及以上版本,无法明确传递7.4.0已不再是支持的最低版本这一关键信息。
环境与待升级包
使用Yarn Workspaces,需升级的包列表:
yarn workspace holograph-storybook upgrade @storybook/addon-essentials @storybook/addon-interactions @storybook/addon-links @storybook/addon-onboarding @storybook/addon-styling @storybook/blocks @storybook/nextjs @storybook/react @storybook/testing-library storybook storybook-dark-mode
解决方案
要同时完成包升级并在package.json中明确最低版本要求,可按以下步骤操作:
1. 指定最低版本范围升级
使用Yarn的upgrade命令并附加具体版本范围,强制将package.json中的版本约束改为^7.6.17(允许7.6.17及以上的同小版本更新):
yarn workspace holograph-storybook upgrade @storybook/addon-essentials@^7.6.17 @storybook/addon-interactions@^7.6.17 @storybook/addon-links@^7.6.17 @storybook/addon-onboarding@^7.6.17 @storybook/addon-styling@^7.6.17 @storybook/blocks@^7.6.17 @storybook/nextjs@^7.6.17 @storybook/react@^7.6.17 @storybook/testing-library@^0.2.2 storybook@^7.6.17 storybook-dark-mode@^3.0.3
注:
@storybook/testing-library和storybook-dark-mode的版本需匹配Storybook 7.6.x的兼容要求,上述版本为适配示例,可根据实际情况调整。
2. 严格锁定最低版本(可选)
若需完全禁止安装低于7.6.17的版本,可将版本范围改为>=7.6.17,执行以下命令直接修改package.json:
yarn workspace holograph-storybook add @storybook/addon-essentials@>=7.6.17 @storybook/addon-interactions@>=7.6.17 @storybook/addon-links@>=7.6.17 @storybook/addon-onboarding@>=7.6.17 @storybook/addon-styling@>=7.6.17 @storybook/blocks@>=7.6.17 @storybook/nextjs@>=7.6.17 @storybook/react@>=7.6.17 @storybook/testing-library@>=0.2.2 storybook@>=7.6.17 storybook-dark-mode@>=3.0.3 --dev
3. 验证结果
执行yarn install后,检查:
- package.json中的版本范围已更新为指定的最低版本约束
- yarn.lock中的所有相关包版本均符合要求
内容的提问来源于stack exchange,提问作者Qwerty
相关产品推荐
相关产品推荐

