在我的NextJS项目中,我使用yarn作为包管理器,并决定使用yarn link来实现导入别名/绝对导入。这是yarn的一个很好的特性,如果你使用yarn,推荐使用别名的方式。然而,在我实现它之后,我的docker映像创建脚本崩溃了。在步骤6上创建映像失败,这是实际的构建。如果我运行yarn dev或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/*是一个别名,并且能够找到相应的模块?
发布于 2021-09-21 13:39:24
在这种情况下,我会避免使用yarn link,因为它应该仅用于开发,而您可以使用webpack别名。https://teselagen.com/blog/a-better-alternative-to-npm-yarn-link-for-front-end
https://stackoverflow.com/questions/69269389
复制相似问题