JeffreyFrancesco.org 公開日 タグ Tag Permalink 現在地 Facebook page Twitter RSS feed

作業メモ。まずはこのウェブサイトから Sprockets(というよりここは今のところ Jekyll で構成しているので Jekyll Assets だが)& Rails Assets 依存を脱却して、アセット管理を npm & webpack に移行していきたい。ということで、今日からその作業を進めていくことにした…のだけど、昨日は午前 4 時くらいまで G-ground の新年会やってて、帰宅後いろいろあって寝たのが 6 時過ぎ。そして結局昼の 2 時過ぎまで寝てたので、たいしたことはできんかった。涙

そんな訳で、今日のところは下準備だけ。

とりあえず別ブランチ切るぜ

git checkout -b goodbye-jekyll-assets

Gemfile

jekyll-assets と rails-assets に関連する記述をごっそり削除。

@@ -1,18 +1,9 @@
 source "https://rubygems.org"
-source "https://rails-assets.org"
 
 gem "jekyll", "~>2.0"
-gem "jekyll-assets"
 gem "jekyll-archives"
 gem "jekyll-sitemap"
 
-gem "uglifier"
-
-group :rails_assets do
-  gem "rails-assets-normalize-css", "~>3.0"
-  gem "rails-assets-highlightjs"
-end
-
 group :development do
   gem "foreman"
 end

ついでなのでこの際 Jekyll も最新バージョンまで上げたいところだけど、とりあえずはこのままにしておく。

_config.yml

jekyll-assets プラグインの読み込み部分を削除。また、このままでは jekyll build コマンド実行時に webpack が build したものを全部消してしまうので keep_files: [.git, assets] を追加(.git は自分の場合 git worktree add gh-pages gh-pages してるので、壊れないように同時に追記)。

@@ -14,12 +14,11 @@ source: source
 destination: gh-pages
 gems:
 - jekyll-sitemap
-- jekyll-assets
-- jekyll-assets/rails-assets
 - jekyll-archives
 permalink: /:categories/:title/
 excerpt_separator: "<!-- more -->"
 exclude: [tests]
+keep_files: [.git, assets]
 
 # Markdown converter settings
 markdown: kramdown

ディレクトリ構成をちょっと変える

source/_assets ディレクトリを assets にリネームして、プロジェクトのルート直下に移動。

git mv source/_assets assets
  • source 以下は Jekyll で build するもの
  • assets 以下は webpack で build するもの

という構成にしておく。分割しておけば、もし将来的に Jekyll から別の静的サイトジェネレーターに乗り換えたくなった時に楽かもしれない…と思ってるのだけど、多分いうほど楽ではないよね。涙

ソースファイルから jekyll-assets 依存の記述を削除・書き換え

これは後でもよかったのだけど、jekyll-assets で定義される liquid タグや sass 用のヘルパー関数を使った記述は使えなくなるので、いったん削除したり相対パスを使った通常の記述に置き換えるなどしておく。たいしたことはやってなかったので数ヶ所の変更で済んだ。


ここまでやったところで、とりあえず bundle exec jekyll build を実行してみる。エラーなく build ができること、過去に build したアセットファイルが gh-pages/assets 以下に消えずに残っていること、プレビューしてスタイルシートの当たってない素の HTML が表示できることを確認しておしまい。残りの作業は明日以降に。

ていうか、やっぱりシンタックス・ハイライトないと diff の出力とかなにがなんやらさっぱりやな。涙