【メモ】Vagrant では npm run watch が動作しない【#np2020】
Laravelで静的ファイルを更新した場合、Laravel-mixを使ってコンパイルするわけですが、今の僕のサイズで1回あたり40秒ぐらい掛かるので、頻繁にコードを書き換える必要があるときには結構煩雑。出来ればこうもっとパパッとやって欲しい、バックグラウンドでやっておいて欲しい。
Laravelで静的ファイルを更新した場合、Laravel-mixを使ってコンパイルするわけですが、今の僕のサイズで1回あたり40秒ぐらい掛かるので、頻繁にコードを書き換える必要があるときには結構煩雑。出来ればこうもっとパパッとやって欲しい、バックグラウンドでやっておいて欲しい。
Amazonで参考にするものと言えばレビューとそれに基づいて表示されるおすすめ度の星の数。商品表示するときにその星の数を取得出来ると良いんですけど、残念ながら現在のAPIでは提供されていません。提供されているのは、レビューとおすすめ度が表示されたページのURLだけです。例えばこんな感じ。
Awjudd\FeedReaderを通してSimplePieを使ってRSSフィードを操作しようとして嵌まったのでメモ。
RSSフィードを取得して何らかの形で出力するようなアプリケーションを設計中。その動作テストの過程で、はてなブックマークのRSS(RSS1.0)を読み込ませようとしたらなぜだか、次のようなエラーが出てしまって取得出来ない。
今現在のフロントエンドはBootstrapVueで、Laravel Mixを使って
npm run dev
コマンドで開発用コンパイルをして動作チェック、問題なければmasterブランチにマージしてデプロイというかたちになっています。「npm run dev」コマンドは複数のファイルを1つにまとめてくれるんですが、minifyはしません。一方で本番用コンパイルである
npm run production
の方は、まとめた上でminifyしてくれます。どれくらい小さくなるかは環境によると思いますが、僕の環境ではおおむね1/4程度にはなるようです。jsファイルやcssファイルは参照される頻度も高いので、これが小さくなるのはとてもデカい。というわけで、デプロイ前にはそれをしたかったんですが……これまでエラーが出て上手く行かなかったんですね。それがようやく解決出来ましたというお話。
Bootstrap v4.3から、デバイスやビューポートのサイズに合わせてフォントサイズを変更することが出来る「レスポンシブ・フォントサイズ」に対応しています。ドキュメントを読むと、
RFSは、 $enable-respond-font-sizes Sass変数を true に変更してBootstrapを再コンパイルすることで有効になると書いてあります。 Laravelの場合、Bootstrapのソースコードはnode_modulesディレクトリ以下にあり、そこに設定ファイルもあるのですが、このディレクトリはレポジトリに登録されていないために環境によってかわることがあるし、Nodeのトラブルを解決する為に削除→再インストールをされることもあるディレクトリです。なので、ここの設定を変更してもあんまり意味がありません。 ていうかそもそも「laravel/node_modules/bootstrap/scss/vendor/_rfs.scss」では、
// Disable RFS by setting $enable-responsive-font-sizes to false
$enable-responsive-font-sizes: true !default;
となっていて最初から有効になってます。そうなのねー
以下の構成をコンパイルしようとしたときに
├ resouces
│ ├ _variables.scss
│ └ app.scss
└ public
└ app.css
次の様なエラーが出ました。
$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;
^
Incompatible units rem and px.
最初何のことだかさっぱりわからなかったのですが、これ要するに、
数式に含まれている要素の単位は同じじゃないとダメだよということなんですね。 ソースを見返してみると「_variables.scss」の中で「$font-size-base 」が「px」で指定されていましたが、ここはBootstrap4が使っている部分なので「rem」で指定しないといけません。 というわけで「14px」を「0.9rem」に変換して再度コンパイルしたら無事成功。なるほど。