这是我关于stackoverflow的第一个问题。谢谢大家这个绝对精彩的论坛!
我尝试在docker中运行vue pwa。我使用vue-cli来设置pwa应用程序。安装和运行本地没问题。
然后我试图将项目停靠。 我尝试使用以下docker代码:
# Start with a Node.js image.
FROM node:10
# Make directory to install npm packages
RUN mkdir /install
ADD ["./code/package.json", "/install"]
WORKDIR /install
RUN npm install --verbose
ENV NODE_PATH=/install
# Copy all our files into the image.
RUN mkdir /code
WORKDIR /code
COPY . /code/
EXPOSE 8080
CMD npm run dev
问题是在启动合成时出现错误:
web_1 | internal/modules/cjs/loader.js:573
web_1 | throw err;
web_1 | ^
web_1 |
web_1 | Error: Cannot find module 'chalk'
...
我现在尝试了不同的方法几天。但我看不出任何解决方案。我错过了什么吗?有不兼容性吗?
我也尝试完全改为纱线,但效果是一样的。所以我不认为安装包有问题。 Node_Path变量可能有问题吗?
感谢您的支持!
答案 0 :(得分:1)
面对同样的问题,
通常您不会为生产安装任何devDependencies,因此,当NODE_ENV = production时,NPM / Yarn将不会安装devDependencies。
对于docker用例,当我们在docker contianer中构建静态站点时,我们可能需要使用NODE_ENV = production来替换一些PRODUCTION VARIABLES,因此我们将需要使用NODE_ENV = production并安装dev依赖项。 / p>
一些解决方案
1-将所有东西从devDependencies移到依赖项
2-不要在yarn install
||处设置NODE_ENV = production。 npm install
,仅在模块安装后进行设置
3-对于YARN NODE_ENV=production yarn install --production=false
,应该有等效的NPM
4-(未经测试),使用其他名称,即NODE_ENV=prod
,而不是全名,但是您可能需要使用其他依赖于NODE_ENV=production
的配置