首页 > 解决方案 > 自 npm 更新以来,Webpack 未生成捆绑包

问题描述

几周前,我使用npm ... --force和诸如此类的东西更新了我的所有依赖项。有人可能会说这不是最好的选择,但仍然......

我不知道具体原因,但自从我更新了 NPM 依赖项后,webpack 不再生成我的输出包,而之前它做得很好。

项目布局如下

- app/
 |- dist/
 |- app-server/ (Node + Express)
   |- app.js
   |- ...
 |- app-frontend/ (Vue + Bootstrap)
   |- dist/ (HTML/CSS/etc)

webpack.config.js(从内部运行app-server/):

const nodeExternals = require('webpack-node-externals');
const CopyPlugin = require('copy-webpack-plugin');

module.exports = [
  {
    name: 'server',
    entry: './app.js',
    output: {
      path: __dirname + '/../dist',
      filename: 'app_bundle.js',
    },
    mode: 'production',
    target: 'node', // in order to ignore built-in modules like path, fs, etc.
    externals: [
      nodeExternals({})
    ],
    plugins: [
      new CopyPlugin({
        patterns: [{ from: '../app-frontend/dist', to: '../dist/frontend' }],
      })
    ],
    stats: {
      colors: true,
      hash: false,
      version: false,
      timings: false,
      assets: false,
      chunks: false,
      modules: false,
      reasons: false,
      children: false,
      source: false,
      errors: false,
      errorDetails: false,
      warnings: false,
      publicPath: false,
    },
  },
];

日志只说:

Entrypoints:
  app (434 KiB)
      css/chunk-vendors.f6f30965.css
      js/chunk-vendors.98eb6b3c.js
      css/app.a6ef7e2c.css
      js/app.4fd07954.js


Child server:
    Built at: 06.10.2020 19:07:17
    Entrypoint main = app_bundle.js

并且没有生成文件。我试过chmod 775 dist/无济于事。我重新克隆了仓库,但无济于事。我删除了 CopyPlugin 部分,但无济于事。嘿,我什至到了我的 Ubuntu 的根目录并做find * | app_bundle.js -r了,除了上面显示的日志之外,它没有找到任何东西,除了有这个名字的日志,打开时,就是上面显示的日志。

从昨天开始,我一直在为此挠头。

任何帮助是极大的赞赏!

标签: javascriptlinuxubuntuwebpack

解决方案


我终于想通了!

问题是我通过添加以下几行来射击自己:

stats: {
  errors: false,
  errorDetails: false,
  warnings: false,
}

这基本上意味着它只是以错误代码 1 退出,但没有告诉我错误。

我认为这些参数是为了禁用浏览器中的错误。显然我错了

一旦我将上述设置为truewebpack再次运行,我发现它确实有一些错误。

在我的情况下,错误是我正在使用名称(例如)创建文件(在 Windows 下)orderController.js,但require它们调用../../OrderController,正如您所见,这并不完全相等。我的文件有一个o,脚本包含一个大写字母O,在 Windows 下工作得很好,但我忘记了 Linux(运行生产的服务器)是区分大小写的

修复这些错误后,webpack运行良好并在指定的输出目录生成我的包!


推荐阅读