全新 Rails 6.1.4.1 因 webpack 错误而失败 - TypeError: Class constructor ServeCommand无法在没有“new”的情况下调用

Sco*_*t K 15 ruby-on-rails webpack

全新的 Rails 6.1.4.1 应用程序无法运行bin/webpack-dev-server,并出现以下错误:

/rails_app/node_modules/webpack-cli/bin/utils/prompt-command.js:46
    return func(...args);
           ^

TypeError: Class constructor ServeCommand cannot be invoked without 'new'
    at runWhenInstalled (/rails_app/node_modules/webpack-cli/bin/utils/prompt-command.js:46:9)
    at promptForInstallation (/rails_app/node_modules/webpack-cli/bin/utils/prompt-command.js:140:10)
    at /rails_app/node_modules/webpack-cli/bin/cli.js:32:43
    at Object.<anonymous> (/rails_app/node_modules/webpack-cli/bin/cli.js:366:3)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12)
    at Module.require (internal/modules/cjs/loader.js:961:19)
    at require (internal/modules/cjs/helpers.js:92:18)
Run Code Online (Sandbox Code Playgroud)

Jam*_*ier 21

此报告的问题表明 webpack-dev-server 不再与 Webpacker 5 兼容。这意味着我们可以使用两个修复程序:

  1. 强制 webpack-dev-server 保留版本 3

您可以通过更新package.json文件来做到这一点:

"webpack-dev-server": "~3"
Run Code Online (Sandbox Code Playgroud)
  1. 升级到 Webpacker 6

该版本尚未发布升级路径并不简单。