Rails 5.1 Webpack-dev server 启动错误

7
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)
4个回答

3

1

我在使用webpack-dev-server v3.1.0时遇到了同样的错误。将版本降级至v2.11.2后,问题得到了解决。


1

请前往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

0

webpack-dev-server 3.x 只兼容 webpack 4.x,因为同级依赖项已经警告了你。

降级到 v2.11.2(如上面建议的)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接