rails assets

The solution to assets management in Rails

1653
73
Ruby

Rails Assets Build Status

Bundler to Bower proxy

This README concerns the development aspect of the project. Visit
the site
to learn how to use Rails Assets
in your application.

Project Status

Bower is
depcreated

and new projects should not use it. Because Rails Assets is a proxy
between bower and bundler, it should also not be used in new
projects. Instead, there are multiple better
solutions

which work with modern versions of Rails:

A default path with Hotwire and import maps, an alternate path
using a thin integration with one of the popular JavaScript
bundlers, and finally the strict API path with a separate
repository for the front-end.

Development

Setup

git clone [email protected]:tenex/rails-assets.git && cd rails-assets
bundle install && npm install
cp config/database{.sample,}.yml
cp config/application{.sample,}.yml
# edit config/database.yml and config/application.yml if necessary.
bin/rake db:setup
foreman start

Headless chrome

rspec tests will use capybara for tests. Capybara’s driver is set
up to use selenium with headless Chrome. Therefore, you will need
Chrome and the Chrome Selenium web driver.

# get chrome
cat << EOF > /etc/apt/sources.list.d/google-chrome.list
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main
EOF
wget -O- https://dl.google.com/linux/linux_signing_key.pub |gpg
--dearmor > /etc/apt/trusted.gpg.d/google.gpg
apt update && apt install -y google-chrome-stable
# get appropriate driver
chrome_version="$(google-chrome --version | cut -d ' ' -f3)" # Google Chrome 103.0.5060.53 -> 103.0.5060.53
(wget "https://chromedriver.storage.googleapis.com/${chrome_version}/chromedriver_linux64.zip" &&
 unzip chromedriver_linux64.zip -d /usr/local/bin)

Convert Bower package into Ruby gem using CLI

bin/rake 'component:convert[jquery,2.0.3]'

This will create rails-assets-NAME-VERSION.gem file.

You can remove this component by:

bin/rake 'component:destroy[jquery,2.0.3]'

Gems with a .js in their name

For packages from bower that have a .js in their name like typeahead.js which can generate a gem with the name rails-assets-typehead.js if You want to use this gem with Rails 4.2 or higher in order for your gem to work in your application.js you have to require it as follow

//= require typeahead.js.js

instead of

//= require typeahead.js

Credits

Maintained by Tenex Developers @tenex.

Originally created by @teamon, @porada and @sheerun, with the help of contributors. ❤️

Please don’t tweet bugs to us—report an issue instead. ✌️