rails 5.1 Webpack-dev 服务器启动错误


ruby version - 2.4.2
rails - 5.1
rails new my_app --webpack=react 

当我尝试使用foreman start -f Procfile.dev或仅./bin/webpack-dev-server启动服务器时

我收到以下错误,找不到原因。任何帮助,不胜感激。

    /Users/shani/Wspace/myapp/node_modules/webpack-dev-server/bin/webpack-dev-server.js:405
    throw e;
    ^
TypeError: Cannot read property 'compile' of undefined
    at addCompilerHooks (/Users/shani/Wspace/myapp/node_modules/webpack-dev-server/lib/Server.js:71:16)
    at new Server (/Users/shani/Wspace/myapp/node_modules/webpack-dev-server/lib/Server.js:81:5)
    at startDevServer (/Users/shani/Wspace/myapp/node_modules/webpack-dev-server/bin/webpack-dev-server.js:398:14)
    at processOptions (/Users/shani/Wspace/myapp/node_modules/webpack-dev-server/bin/webpack-dev-server.js:361:5)
    at Object.<anonymous> (/Users/shani/Wspace/myapp/node_modules/webpack-dev-server/bin/webpack-dev-server.js:504:1)
    at Module._compile (module.js:662:30)
    at Object.Module._extensions..js (module.js:673:10)
    at Module.load (module.js:575:32)
    at tryModuleLoad (module.js:515:12)
    at Function.Module._load (module.js:507:3)

我在 webpack-dev-server v3.1.0 上遇到了完全相同的异常。我降级到v2.11.1,一切都很好。

https://github.com/rails/webpacker/issues/1303#issuecomment-369090507

我在 webpack-dev-server v3.1.0 中遇到了同样的错误。降级到v2.11.2为我解决了这个问题。

转到 config/webpack/environment.js您需要将 webpack 配置的代码更改为 ".prepend">

应该看起来像这样:

const { environment } = require('@rails/webpacker')
// Bootstrap 3 has a dependency over jQuery:
const webpack = require('webpack')
environment.plugins.**prepend**('Provide',
  new webpack.ProvidePlugin({
    $: 'jquery',
    jQuery: 'jquery'
  })
)
module.exports = environment

webpack-dev-server 3.x 只与 webpack 4.x 兼容,因为对等依赖关系已经警告过你。

降级到 v2.11.2(如上所述(。

最新更新