首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rails webpack编译在78% [0]块资产优化TerserPlugin时挂起

rails webpack编译在78% [0]块资产优化TerserPlugin时挂起
EN

Stack Overflow用户
提问于 2019-05-15 06:53:36
回答 3查看 672关注 0票数 0

我正在和webpack一起使用Rails5,试图为生产进行编译,因为资产在生产中没有显示出来。

如果我尝试NODE_ENV=production rake webpacker:compile,那么它在Compiling...挂起。

在阅读了Compiling in production fails silently and isn't verbose enough之后,我尝试了NODE_ENV=production bin/webpack --progress --config config/webpack/production.js。它挂在78% [0] chunk asset optimization TerserPlugin

我读了这篇https://fontawesome.com/how-to-use/with-the-api/other/tree-shaking#issues,但我不确定如何将Rails切换到使用Babel Minify而不是Terser。

任何帮助更改Rails以使用Babel Minify plugin的人都将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2019-05-20 08:18:47

你需要在你想要使用Babel Minify的环境中做出改变。

如果它适用于生产环境,则您的config/webpack/production.js需要类似于:

代码语言:javascript
复制
process.env.NODE_ENV = process.env.NODE_ENV || 'production'
const environment = require('./environment')
const BabelMinifyPlugin = require('babel-minify-webpack-plugin')

environment.config.optimization.minimizer = [ new BabelMinifyPlugin() ]

module.exports = environment.toWebpackConfig()

这里假设您在package.json文件中添加了babel-minify-webpack-plugin作为依赖项。

如果您想要像选项3中的linked article所指出的那样禁用collapse_vars,那么您的配置文件应该类似于:

代码语言:javascript
复制
process.env.NODE_ENV = process.env.NODE_ENV || 'production'
const environment = require('./environment')
const UglifyJSPlugin = require("uglifyjs-webpack-plugin")

environment.config.optimization.minimizer = [
  new UglifyJSPlugin({
    uglifyOptions: {
      collapse_vars: false
    }
  })
]

module.exports = environment.toWebpackConfig()

这里假设您在package.json文件中添加了uglifyjs-webpack-plugin作为依赖项。

票数 2
EN

Stack Overflow用户

发布于 2019-10-25 11:43:32

我也遇到了erb-loader的问题。在此comment中找到了解决方案。erb加载器和弹簧的相互作用存在一些问题,导致冻结。要修复它,只需添加

代码语言:javascript
复制
env:        {
    ...process.env,
    DISABLE_SPRING: 1,
  }

到erb-loader config( config /webpack/loaders/erb.js)中的选项,因此整个配置如下所示:

代码语言:javascript
复制
module.exports = {
  test: /\.erb$/,
  enforce: 'pre',
  exclude: /node_modules/,
  use: [{
    loader: 'rails-erb-loader',
    options: {
      runner: (/^win/.test(process.platform) ? 'ruby ' : '') + 'bin/rails runner',
      env:        {
        ...process.env,
        DISABLE_SPRING: 1,
      },
    }
  }]
}
票数 1
EN

Stack Overflow用户

发布于 2019-05-20 23:29:07

我想我可能遇到了一个类似的问题,Compiling never completes Rails 5.2, ERB and compile: true。我从我的项目中删除了erb加载器,RAILS_ENV=production rake assets:precompile完成。我也不再收到关于块大小的警告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56139649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档