创建使用纱线链接的项目的 docker 镜像

派利塞

在我的 NextJS 项目中,我使用纱线作为包管理器,并决定使用纱线链接来导入别名/绝对导入。这是 yarn 的一个巧妙特性,如果您使用 yarn,则推荐使用别名的方式。然而,在我实现它之后,我的 docker 镜像创建脚本坏了。映像创建在第 6 步(即实际构建)失败。如果我运行yarn devyarn build一切都很好,但是 docker 似乎并不理解我正在使用别名。这是我运行输出的脚本:

脚本: docker build --pull --rm -f dockerfile -t my-ui . && docker run -d --name my-ui -p 80:80 my-ui

输出:

 => CACHED [builder 1/6] FROM docker.io/library/node:10-alpine@sha256:dc98dac24efd4254f75976c40bce46944697a110d06ce7fa47e726847  0.0s 
 => [internal] load build context                                                                                                4.7s 
 => => transferring context: 2.46MB                                                                                              4.6s 
 => [builder 2/6] COPY package.json yarn.lock ./                                                                                 0.1s 
 => [builder 3/6] RUN yarn install --ignore-engines && mkdir /my-ui && mv ./node_modules ./my-ui               364.1s 
 => [builder 4/6] WORKDIR /my-ui                                                                                         0.0s 
 => [builder 5/6] COPY . .                                                                                                      15.2s 
 => ERROR [builder 6/6] RUN yarn run build

我得到的错误如下: Type error: Cannot find module 'style/icons/More' or its corresponding type declarations.

这发生在项目的第一个组件中。我在 yarn-link 和 docker 上搜索并没有发现任何内容。我如何让 docker 理解这style/*是一个别名并能够找到相应的模块?

对于莫塔德

我会避免yarn link在这种情况下使用它,因为它应该仅用于开发,相反,您可以使用webpack别名。https://teselagen.com/blog/a-better-alternative-to-npm-yarn-link-for-front-end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章