【问题标题】:Rails 5 debug asset compilingRails 5 调试资产编译
【发布时间】:2017-07-07 14:13:19
【问题描述】:

如何调试在 Rails 5 中编译的资产?

使用 Chrome,我没有收到非常有用的错误消息。如果我从命令行运行rake assets:precompile,它也会失败,并且对我的帮助也不够。

我从 Rails 4.2 升级到 5 时遇到的问题。在 application.css.scss 中,我有 @import "nifty"nifty.scss 与其他用于漂亮主题的 SCSS 文件一起存在于 vendor/assets/stylesheets/nifty 中。 nifty.scss的要点是:

@import "_variables";
@import "_layout";
@import "_animations";
@import "_mainnav";

当 Rails 尝试编译资源时,它会以 @import _animations 失败,错误为 Undefined variable: "$enable-animation"。虽然,这个变量是在_variables; 中定义的。即使我不需要,我也尝试在 _animations 的顶部添加@import _variables;。这修复了该错误,但随后其他非常相似的错误出现更多错误,直到我几乎 @import 每个其他 scss 文件中的每个 scss。

我认为问题不在于 SASS 文件中的变量,而是其他地方的问题。我尝试将byebug 作为断点放在别处,但似乎找不到问题。

还有其他方法可以调试资产管道和资产编译吗?

【问题讨论】:

  • 让我们知道完整的堆栈跟踪。这样做rake assets:precompile --trace

标签: css ruby-on-rails sass asset-pipeline ruby-on-rails-5


【解决方案1】:

我不确定我是否能提供帮助。

调试链轮

您可以尝试调试 Asset Pipeline 中涉及的 SpocketsGEM。 RVM 是一个隐藏文件夹,根据您使用的 Ruby 版本,您的 gem 可能位于以下路径中。

.rvm/gems/ruby-2.3.3@myapp/gems/

在里面我可以找到 sprockets-rails-3.2.0,你有几个 .rb 文件,你可以用你的 sublime 编辑器打开它们,你可以在代码中设置断点 for例如binding.pry。 查看 pry gem 以了解有关 pry 调试器的详细信息。

我希望我能想到你的其他问题...

【讨论】:

  • 谢谢。我找不到解决问题的好方法。相反,我创建了一个新的 Rails 5 应用程序,然后在文件处理错误时慢慢移动它们。我的建议是不要从 Rails 4 升级到 Rails 5,而是创建一个新应用程序并移动文件。
猜你喜欢
  • 2019-09-11
  • 2018-07-04
  • 1970-01-01
  • 2020-10-10
  • 1970-01-01
  • 1970-01-01
  • 2017-11-10
  • 1970-01-01
  • 2013-09-27
相关资源
最近更新 更多