描述Bug
我发现本地构建的storybook可以正常工作,但在Docker中却无法构建。经过反复推敲,我发现如果编译发生在git repo的上下文中,它确实可以工作。.git目录被排除在Docker映像之外是相当合理的。
在getProjectRoot()
中,根目录是通过查找.git,.svn或node_modules目录来找到的,并使用process.cwd()作为回退。然而,在Docker环境中,不会有.git或.svn,而在yarn 2中,也没有node_modules。看起来yarn 2将cwd作为zip文件呈现。
这会在生成的Webpack中产生以下结果:
module: {
rules: [
{
test: /\.(mjs|tsx?|jsx?)$/,
use: [ redacted ],
include: [
'D:\\react\a\\.yarn\\$virtual\\@storybook-core-virtual-0a602ea853\\0\\cache\\@storybook-core-npm-6.1.18-f25c70fd19-ac341dcf78.zip\\'
如果存在.git,则
include: [ 'D:\\react\\a' ]
重现
删除或重命名.git后在yarn 2中构建
预期行为
生成成功
系统
可在WSL/node上的Windows/Ubuntu上重复:当前-alpine Docker映像
2条答案
按热度按时间rbpvctlc1#
我也遇到了同样的问题,花了我一天的时间来解决这个问题。作为一种解决方法,在docker build中创建一个空的.git目录似乎是可行的:
运行mkdir .git
nnt7mjpx2#
大家好!看起来最近这一期没有太多进展。如果还有问题、评论或错误,请随时继续讨论。很遗憾,我们没有时间讨论每一期。我们随时欢迎投稿,所以如果您愿意提供帮助,请向我们发送拉取请求。不活跃的问题将在30天后关闭。谢谢!