Resolve custom application stylesheet with Webpack (#3373)

This implementation is a bit smaller and still has the following benefits:

* No need of app/javascript/packs/custom.js
For custom stylesheet, it typically has only
"require('../styles/custom.scss')" and is redundant.

* No need to extract vendor stylesheet to another asset
Extracting vendor stylesheet could be forgotten by developers who do not
use custom stylesheet.
This commit is contained in:
Akihiko Odaki (@fn_aki@pawoo.net)
2017-06-02 03:56:32 +09:00
committed by Eugen Rochko
parent 2212dc4aaa
commit e98559c3ff
4 changed files with 11 additions and 25 deletions

View File

@ -1,17 +0,0 @@
# frozen_string_literal: true
module StyleHelper
def stylesheet_for_layout
if asset_exist? 'custom.css'
'custom'
else
'application'
end
end
def asset_exist?(path)
true if Webpacker::Manifest.lookup(path)
rescue Webpacker::FileLoader::NotFoundError
false
end
end

View File

@ -2,7 +2,7 @@ const perf = require('./performance');
// import default stylesheet with variables
require('font-awesome/css/font-awesome.css');
require('../styles/application.scss');
require('mastodon-application-style');
function onDomContentLoaded(callback) {
if (document.readyState !== 'loading') {

View File

@ -18,8 +18,7 @@
= ' - '
= title
= stylesheet_pack_tag 'common', media: 'all'
= stylesheet_pack_tag stylesheet_for_layout, media: 'all'
= stylesheet_pack_tag 'application', media: 'all'
= javascript_pack_tag 'common', integrity: true, crossorigin: 'anonymous'
= javascript_pack_tag "locale_#{I18n.locale}", integrity: true, crossorigin: 'anonymous'
= csrf_meta_tags