Heroku 在 uglifier 上构建失败
Posted
技术标签:
【中文标题】Heroku 在 uglifier 上构建失败【英文标题】:Heroku build fails on 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 gem2.我没有文件应用程序/资产/javascripts/application.js
我尝试了以下 Gemfile 解决方案:A) 添加 uglifier gemB) 将 uglifier 添加到资产组 C) 从 Gemfile 中完全删除 uglifier 并 rake 卸载所有版本
接下来是什么?
【问题讨论】:
您根本不想使用资产管道? 检查浏览器控制台上是否有 javascript 错误。在本地机器上尝试预编译。 预编译在本地工作,但 pg_ext 除外,这似乎是与 uglifier 不同的问题。我不明白的是为什么 uglifier 被引用,因为我从 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)
【讨论】:
以上是关于Heroku 在 uglifier 上构建失败的主要内容,如果未能解决你的问题,请参考以下文章
尝试将带有顺风的 MERN 堆栈部署到 Heroku 时构建失败
heroku 中的 vue-cli-service 构建失败