首页 > 解决方案 > webpack-dev-server 在 Rails 应用程序中编译非常慢

问题描述

当我跑

bin/webpack-dev-server

在使用 react-rails gem 的 rails 5.1.7 应用程序上,它可能会卡住超过 10-20 分钟并显示以下消息:

ℹ 「wdm」: wait until bundle finished: /packs/js/application-5bc097626fe492d88e56.js

我的配置是:

在 erb.js 中

module.exports = {
  test: /\.erb$/,
  enforce: 'pre',
  exclude: /node_modules/,
  use: [{
    loader: 'rails-erb-loader',
    options: {
      runner: (/^win/.test(process.platform) ? 'ruby ' : '') + 'bin/rails runner'
    }
  }]
}


在 development.js 中

process.env.NODE_ENV = process.env.NODE_ENV || 'development'

const environment = require('./environment')

// Watch directories that often change the views.
// From: https://github.com/rails/webpacker/issues/1879#issuecomment-558397652
const chokidar = require('chokidar')
environment.config.devServer.before = (app, server) => {
  chokidar.watch([
    'config/locales/**/*.yml',
    'app/views/**/*.html.erb',
    'app/assets/**/*.scss'
  ]).on('change', () => server.sockWrite(server.sockets, 'content-changed'))
}

module.exports = environment.toWebpackConfig()

标签: ruby-on-rails-5webpackerreact-rails

解决方案


加快速度webpack-dev-server

  1. 使用javascript_packs_with_chunks_tag而不是javascript_pack_tag
  2. 添加environment.splitChunks()config/webpack/environment.js

推荐阅读