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(如上所述(。