在码头工人vue pwa - 找不到模块'粉笔'

时间:2018-05-30 11:55:13

标签: docker npm vue.js

这是我关于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变量可能有问题吗?

感谢您的支持!

1 个答案:

答案 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的配置