【问题标题】:Heroku build fails on uglifierHeroku 在 uglifier 上构建失败
【发布时间】:2015-02-23 22:01:33
【问题描述】:

我的最小应用程序在本地运行,并且没有捆绑错误。但是,当我推送到 heroku 时,在 assets:precompile 步骤中构建失败:

...
Bundle completed (3.24s)
Cleaning up the bundler cache.
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompole
rake aborted!
LoadError: cannot load such file -- uglifier
(in /tmp/build_.../app/assets/javascripts/application.js)

注意事项:
1.我没有在本地使用 uglifier gem
2.我没有文件应用程序/资产/javascripts/application.js

我尝试了以下 Gemfile 解决方案:
A) 添加 uglifier gem
B) 将 uglifier 添加到资产组
C) 从 Gemfile 中完全删除 uglifier 并 rake 卸载所有版本

接下来是什么?

【问题讨论】:

  • 您根本不想使用资产管道?
  • 检查浏览器控制台上是否有 javascript 错误。在本地机器上尝试预编译。
  • 预编译在本地工作,但 pg_ext 除外,这似乎是与 uglifier 不同的问题。我不明白的是为什么 uglifier 被引用,因为我从 Gemfile 中删除了它并卸载了所有版本??

标签: ruby-on-rails heroku gemfile


【解决方案1】:

在 config/environments/production.rb 中注释这一行

config.assets.js_compressor = :uglifier

【讨论】:

  • 下次推送前别忘了提交! :-)
【解决方案2】:

如果您想压缩资产,更好的解决方案是将uglifier 添加到您的 GEMFILE:

gem 'uglifier'

【讨论】:

    【解决方案3】:

    如果您有兴趣继续使用 uglifier,可以将其添加到您的 Gemfile(并使用 Bundler 安装)——正如 @mindtonic 所解释的那样。

    另外,如果您使用的是 ES6,则需要切换:

    config.assets.js_compressor = :uglifier
    

    到:

    config.assets.js_compressor = Uglifier.new(harmony: true)
    

    https://github.com/lautis/uglifier/issues/127中所述

    【讨论】:

      【解决方案4】:

      你必须关注两点:

      第 1 点。 Gem 版本:应该是 4.2

      gem 'uglifier', '~> 4.2'
      

      第 2 点。现在使用 js 压缩器

      config.assets.js_compressor = Uglifier.new(harmony: true)
      

      【讨论】:

        猜你喜欢
        • 2021-01-20
        • 1970-01-01
        • 1970-01-01
        • 2022-01-25
        • 1970-01-01
        • 2020-10-09
        • 1970-01-01
        • 2021-11-16
        • 2015-12-19
        相关资源
        最近更新 更多