Assets

JavaScript

--skip-javascript [-J]

<!-- app/views/layouts/application.html.erb -->

<head>
  <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
# bin/setup

FileUtils.chdir APP_ROOT do
  # Install JavaScript dependencies
  # system('bin/yarn')
end
# bin/yarn

#!/usr/bin/env ruby

APP_ROOT = File.expand_path('..', __dir__)

Dir.chdir(APP_ROOT) do
  begin
    exec 'yarnpkg', *ARGV
  rescue Errno::ENOENT
    $stderr.puts 'Yarn executable was not detected in the system.'
    $stderr.puts 'Download Yarn at https://yarnpkg.com/en/docs/install'
    exit 1
  end
end
# config/initializers/assets.rb

Rails.application.config.assets.paths << Rails.root.join('node_modules')
# config/initializers/content_security_policy.rb

# Rails.application.config.content_security_policy do |policy|
#   policy.connect_src :self, :https, 'http://localhost:3035', 'ws://localhost:3035' if Rails.env.development?
# end
# Gemfile

gem 'turbolinks', '~> 5'
gem 'webpacker', '~> 4.0'
// package.json

{
  "name": "my_app",
  "private": true,
  "dependencies": {
    "@rails/actioncable": "^6.0.0",
    "@rails/activestorage": "^6.0.0",
    "@rails/ujs": "^6.0.0",
    "@rails/webpacker": "4.2.2",
    "turbolinks": "^5.2.0"
  },
  "version": "0.1.0",
  "devDependencies": {
    "webpack-dev-server": "^3.10.3"
  }
}

Sprockets

--skip-sprockets [-S]

# config/application.rb

require 'sprockets/railtie'
# config/environments/development.rb

class Application < Rails::Application
  config.assets.debug = true
  config.assets.quiet = true
end
# config/environments/production.rb

class Application < Rails::Application
  config.assets.compile = false
end
# config/initializers/assets.rb

Rails.application.config.assets.version = '1.0'
Rails.application.config.assets.paths << Rails.root.join('node_modules')
# Gemfile

gem 'sass-rails', '>= 6'

--skip-turbolinks

// app/javascript/packs/application.js

require('turbolinks').start()
<!-- app/views/layouts/application.html.erb -->

<head>
  <%= stylesheet_link_tag 'application', 'data-turbolinks-track': 'reload', media: 'all' %>
  <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
</head>
# Gemfile

gem 'turbolinks', '~> 5'
// package.json

{
  "dependencies": {
    "turbolinks": "^5.2.0"
  }
}

Last updated