【问题标题】:throwing error while creating production build when using npm install --production使用 npm install --production 创建生产版本时抛出错误
【发布时间】:2020-01-01 07:47:44
【问题描述】:

我已将brotli-webpack-plugin 安装为devDependency。在尝试使用npm run build(内部调用next build)创建生产版本时,它会引发以下错误

错误:找不到模块“brotli-webpack-plugin”。

我在next.config.js 中使用这个插件。

在我的生产构建期间,我想做npm install --production 以减小容器大小。我该怎么办?

如果我只使用npm istall,那么构建正在创建而没有任何错误。我应该将该包从devDependency 移动到dependency 吗?

【问题讨论】:

  • 请在问题中添加更多详细信息。至少添加一个 repro repo
  • 如果我同时安装了依赖和 devDependency,那么我就可以创建构建。但是如果我只安装依赖项,那么构建过程就会抛出Error: Cannot find module 'brotli-webpack-plugin'。此包已作为 devDependency 添加。

标签: javascript reactjs npm package.json next.js


【解决方案1】:

我猜你想这样做:

  1. 安装依赖项。
  2. 构建应用程序
  3. 创建容器(我假设您使用 Docker 进行容器化)

并且您只想添加生产依赖项。在构建阶段需要向您抛出错误的模块,如果您仅安装生产依赖项,则构建将不会成功。假设您正在使用终端或任何带有 bash 的东西,请执行以下操作:

  1. rm -rf node_modules(这会清理你的依赖)
  2. npm install(安装所有依赖)
  3. npm build(或您的任何构建命令)
  4. rm -rf node_modules(在这里你再次清理依赖,因为你已经完成了构建)
  5. npm install --production(你有它 - 仅用于生产的依赖项)
  6. 创建 docker 容器的任何命令

应该适合你。

【讨论】:

  • 感谢您的回答。我不想做npm install 两次。无论如何,我正在尝试您的解决方案。
猜你喜欢
  • 1970-01-01
  • 2019-03-28
  • 2021-12-18
  • 2015-03-11
  • 2016-03-14
  • 1970-01-01
  • 2017-05-12
相关资源
最近更新 更多