javascript - 创建使用 yarn 链接的项目的 docker 镜像
问题描述
在我的 NextJS 项目中,我使用 yarn 作为包管理器,并决定使用yarn 链接来导入别名/绝对导入。这是 yarn 的一个简洁功能,如果您使用 yarn,推荐使用别名的方法。然而,在我实现它之后,我的 docker 镜像创建脚本坏了。映像创建在第 6 步失败,这是实际构建。yarn dev
如果我运行or ,一切都很好yarn 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
推荐阅读
- mule - 如何在 mule 4 中在运行时创建流
- java - 比较器如何在内部工作?
- javascript - 在 CSS 中具有透明度的图像上的线性渐变
- html - 在输入字段内添加一个显示密码按钮 - 酥脆的表格
- flutter - Flutter-根据我的代码如何使材料按钮在向左滑动时不可见并在向右滑动时重新出现
- compiler-errors - Springer 乳胶模板 SVJour3 f 的问题
- angular - 错误:使用“defer”时“observableFactory 不是函数”
- javascript - 动态添加“选择”选项后,选项不会显示在页面的选择/下拉菜单中
- vue.js - 显示带有事件的 HTML 内容,从 Vue 模板的后端加载
- c++ - 函数指针和任意参数