サンプル
流れ
- webpacker無しのrailsで良い
- parcelを通常通り使う
- javascriptは
app/javascript/packs
配下でもどこでも良い - parcelの出力先は
app/assets
配下へ (例app/assets/bundled
) -
config/initializers/assets.rb
に出力したファイルをprecompileのリストへ追加 - parcelでコンパイルしたjsファイルは通常通り
javascript_include_tag
で呼び出す
例
# これにて app/assets/bundled 配下にファイルが出来る
yarn run parcel app/javascript/packs/hello_world.jsx -d app/assets/bundled
# 続けてサーバー起動
rails s
# またはproduction環境で
# 5.のprecompileリストへ追加をしているのでparcelでコンパイルしたものも、digest付きファイルは出力される
rails assets:precompile RAILS_ENV=production
rails s -e production
注意点
assets:precompile
の時に普通config/environments/production.rb
の
config.assets.js_compressor = :uglifier
で、難読化されるが、uglifier
gem自体のバージョンが古いとブラウザでの実行時にエラーが出る事がある。