みかづきメモ

学習したことのメモとか、日記とか、備忘録。

Webpacker のプロダクション環境での assets:precompile でこける

Rails 5.1 以上、 Webpacker を導入した環境で、プロダクションビルドした際、 assets:precompile で結果が何も帰ってこなくなりました。

こんな感じ:

01:00 deploy:assets:precompile
    01 $HOME/.rbenv/bin/rbenv exec bundle exec rake assets:precompile
    01 Webpacker is installed 🎉 🍰
    01 Using /home/mikazuki/cancer/releases/20180114021630/config/webpacker.yml file for setting up webpack paths
    01 Compiling...

この状態でずーーーと止まってる感じ。
調べてみると、コンパイル中にメモリが足りなくなって死んでるとのこと。

ということで、 Webpacker が使えるメモリ容量を増やすことで解決しました。

@@ bin/webpack
-cmd = [ "#{NODE_MODULES_PATH}/.bin/webpack", "--config", WEBPACK_CONFIG ] + ARGV
+cmd = [ "node", "--max_old_space_size=4096", "#{NODE_MODULES_PATH}/.bin/webpack", "--config", WEBPACK_CONFIG ] + ARGV

( bin/webpack をいじって解決させたけど、これでいいのかは知らない)

参考:

vetur のフォーマッターのオプションを変えたい

どうせ次のプロジェクト始める際に忘れているだろうから、メモ。

VS Code で、 vetur 使うとき、フォーマッターの設定を変えたくなった。
(1行あたり80文字ではなく、120文字にしたかった)
そのときの方法。

  1. プロジェクトルートに .prettierrc を作る。
  2. printWidth: 120 と書く。

以上

Windows + Docker で、あるハズのファイルに No such file or directory を言われる

Windows + Docker で、 Docker イメージを作っているとき、
COPY で突っ込んだシェルスクリプトが、呼べないことがあった。
原因は改行コードで、 CRLF を LF にした上で送信すると、正常に実行された。

参考:

rubyzip でパーミッション付きで解凍したい

タイトルまま。

require 'zip'

Zip::File.open(file) do |zip_file|
  zip_file.each do |entry|
    entry.restore_permissions = true # ここ!
    entry.extract
  end
end

このままだと、ディレクトリが来たときとか死ぬ気がするけど、それはそれで。

Administrate の Enumerize プラグインを作った

最近、管理画面に Administrate を採用していて、かつ enumi18n とかで
Enumerize を使っているので、良い感じにするためのプラグインを作りました。

administrate-field-enumerize | RubyGems.org | your community gem host

他の Field と同じように、 Enumerize を使って定義した物に対して、
ATTRIBUTE_TYPESField::Enumerize を指定することで、良い感じにします。

詳しい使い方やバグ修正などがあれば、 GitHub リポジトリまでお願いします。

github.com