我遇到一个将我的nextjs(这是SSR ReactJS的库)项目进行泊坞化的问题。当我尝试 docker-compose up 我的应用程序时,它在步骤6/8失败。显然,我的流程类型插件 plugin-transform-flow-strip-types 不受构建过程的管理。该插件已添加到我的package.json和.babelrc文件中。但是,当我使用 node start 启动项目或使用 node build 用nextjs构建项目时,一切都很好。问题与docker相关。
这是我的Dockerfile
mockMvc.perform(get("/api/users/" + id))
.andExpect(status().isOk())
.andExpect(jsonPath("$.id", org.hamcrest.Matchers.is(id)));
这是我的docker-compose.yml
FROM node:10.13.0
RUN mkdir -p /website
COPY . /website
WORKDIR /website
RUN yarn install --production=true
RUN yarn run build
EXPOSE 3000 9229
CMD [ "yarn", "run", "start" ]
这是我的.babelrc文件
version: "3"
services:
app:
container_name: website
build: .
ports:
- "3000:3000"
- "9229:9229"
运行docker-compose时,这是cli输出
{
"presets": [
"next/babel"
],
"plugins": [
"@babel/plugin-transform-flow-strip-types"
]
}
这是我的package.json
{
Error: (client) ./pages/index.jsx
Module build failed (from ./node_modules/next/dist/build/webpack/loaders/next-babel-loader.js):
Error: Cannot find module '@babel/plugin-transform-flow-strip-types' from '/website'
}
您有解决问题的主意吗?
谢谢!
答案 0 :(得分:1)
您似乎依赖错误的软件包,取决于6.x
的Babel plugin-transform-flow-strip-types
版本,而在代码中,您需要Babel 7.x
版本。
运行以下命令以取决于babel 7.x版本:
npm install --save-dev @babel/plugin-transform-flow-strip-types
最后,使用以下方法从依赖项中删除旧版本:
npm uninstall babel-plugin-transform-flow-strip-types