docker中的vue pwa - 找不到模块'chalk'
Posted
技术标签:
【中文标题】docker中的vue pwa - 找不到模块\'chalk\'【英文标题】:vue pwa in docker - cannot find module 'chalk'docker中的vue pwa - 找不到模块'chalk' 【发布时间】:2018-11-09 06:30:07 【问题描述】:这是我关于 *** 的第一个问题。感谢大家对这个绝对精彩的论坛!
我尝试在 docker 中运行 vue pwa。我使用 vue-cli 来设置 pwa 应用程序。本地安装运行没问题。
然后我尝试 dockerize 项目。 我尝试使用以下 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'
...
这几天我尝试了不同的方法。但我看不到任何解决方案。我想念什么吗?有不兼容吗?
我也试过完全改成yarn但是效果是一样的。所以我认为安装软件包没有问题。 Node_Path 变量会不会有问题?
提前感谢您的支持!
【问题讨论】:
我认为我没有解决您问题的方法,因此请将此视为提示:--dev
标志在当前 npm 版本中已弃用(如果您不这样做,请检查您的版本)不会收到警告);实际上你不想only npm install
dev 包——你想在开发的时候安装all包。 P.S.:第一个问题写得很好:-)
谢谢。我编辑了文件。正如预期的那样,没有区别。现在它应该遵循最新的规则。
npm install won't install devDependencies的可能重复
我认为没有关系。因为只有“粉笔”模块似乎有问题。 devDependencies 中的其他包已正确安装。
【参考方案1】:
面对同样的问题,
通常你不会为生产安装任何 devDependencies,因此当 NODE_ENV=production 时,NPM/Yarn 不会安装 devDependencies。
对于 docker 用例,当我们在 docker contianer 中构建静态站点时,我们可能需要使用 NODE_ENV = production 来替换一些 PRODUCTION VARIABLES,因此我们需要使用 NODE_ENV = production 但还要安装 dev 依赖项。
一些解决方案
1 - 将所有内容从 devDependencies 转移到依赖项
2 - 不要将 NODE_ENV=production 设置为 yarn install
|| npm install
,模块安装后才设置
3 - 对于 YARN,NODE_ENV=production yarn install --production=false
,应该有 NPM 等价物
4 -(未测试),其他名称 I.E NODE_ENV=prod
,而不是全名生产,但您可能需要使用其他依赖于 NODE_ENV=production
的配置
【讨论】:
以上是关于docker中的vue pwa - 找不到模块'chalk'的主要内容,如果未能解决你的问题,请参考以下文章
如何修复“找不到模块 vue-cli-service.js”?