当不在git或svn上下文中时,yarn 2出现构建问题

hc2pp10m  于 2022-10-29  发布在  Git
关注(0)|答案(2)|浏览(209)

描述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映像

rbpvctlc

rbpvctlc1#

我也遇到了同样的问题,花了我一天的时间来解决这个问题。作为一种解决方法,在docker build中创建一个空的.git目录似乎是可行的:
运行mkdir .git

nnt7mjpx

nnt7mjpx2#

大家好!看起来最近这一期没有太多进展。如果还有问题、评论或错误,请随时继续讨论。很遗憾,我们没有时间讨论每一期。我们随时欢迎投稿,所以如果您愿意提供帮助,请向我们发送拉取请求。不活跃的问题将在30天后关闭。谢谢!

相关问题