链轮在 rails 中意味着什么

What sprockets mean in rails

所以,我刚刚意识到我完全不知道 rails 中的链轮是什么。

当使用 bootstrap 或 materialize 时,要求在 application.js 文件中包含 sprocket(bootstrap-sprocket 或 materialize-sprocket)。

我搜索的所有内容都与资产管道有关,这让我更加困惑。

根据 ruby-指南,

The asset pipeline is technically no longer a core feature of Rails 4, it has been extracted out of the framework into the sprockets-rails gem.

当我这样做时 bundle show sprockets-rails,我得到了:

/Users/Sunday/workspace/resilience/vendor/bundle/ruby/2.1.0/gems/sprockets-rails-2.3.1

这表明我至少有gem。

但我的困惑和问题是 sprockets 的重要性,而不是 sprockets-rails 的重要性,这使得其他 gem 像 bootstrapmaterialize 并且可能其他一些人拥有 sprockets,尤其是在他们的 javascript 文件中?

谢谢。

/app/assets/javascripts/application.js
// This is a manifest file that'll be compiled into including all the files listed below.
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
// be included in the compiled file accessible from http://example.com/assets/application.js
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
//= require jquery
//= require jquery_ujs
//= require_tree .

application.js 文件称为清单,由 Sprockets 内部管理。当收到针对此文件的请求时,Sprockets 查看清单并 将其中提到的每个文件一起编译 并在该文件中的任何代码之前包含它们的内容。 Sprockets 将在 loadpath 中搜索此文件,在本例中,从 jquery-rails 引擎的 vendor/asset/javascripts 目录中加载它。

Sprockets 是一个 Ruby 库,用于编译和提供网络资产。 Sprockets 允许将应用程序的 JavaScript 文件组织成更小、更易于管理的块,这些块可以分布在多个目录和文件中。它提供了有关如何在我们的项目中包含资产的结构和实践。

在每个 JavaScript 文件的开头使用指令,Sprockets 可以确定 JavaScript 文件依赖于哪些文件。在部署您的应用程序时,Sprockets 然后使用这些指令将您的多个 JavaScript 文件转换为单个文件以获得更好的性能。