我正在 monorepo 中构建一个微服务应用程序,其中包含一堆微服务和一个 commons 包。这个 commons 包从未发布到 npm。(包通过纱线工作区进行管理)
使用parcel,commons包被捆绑到生产代码中,所以我不需要在运行时安装它。
每个微服务都在自己的 Docker 容器中运行。因此,当我构建 docker 容器时,理想情况下,我想忽略这个“commons”依赖项并安装所有其他依赖项。AFAIK,执行此操作的唯一方法是将“commons”包放在 devDependency 中。
但是,似乎即使我仅将其添加到 devDependency 并运行npm i --only=production, npm 仍然尝试解析包并仍然抛出ETARGET错误。
有没有办法完全忽略 devDependency?我唯一的另一个想法是编写一个脚本,在运行 npm install 之前从 package.json 中删除 devDependencies 字段,但我想先在这里询问以确保我没有遗漏任何内容。
小智 7
npm/cli 存储库上有一个 GitHub 问题,在此处跟踪此问题 (#4967),此行为被归类为错误。
因此,为了回答你的问题,就 GitHub 问题的当前状态而言,预期的行为是不要devDependencies尝试在模式下解决--production,并且一旦已修复。我不认为你错过了什么。
您想到的解决方法对我来说听起来很合理。
在 GitHub 问题上,您可以通过竖起大拇指反应来表示“我也是”(请不要在评论中发送“我也是”评论)。
| 归档时间: |
|
| 查看次数: |
1499 次 |
| 最近记录: |