このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

Webフロントエンドでの話

Webフロントエンドとは縁がないのでよく知らんが、ビルドツールは 最近のビルドツールって何なの? - 檜山正幸のキマイラ飼育記 で取り上げたことがある。

2017年前半に、bowerというツールも終焉したらしい(よく知らんが、ご愁傷様)。

なんか、教訓がとても面白い、つうか、心に響く。

パッケージリソースのオリジナル(原版、原本)は、githubにあるらしい。で、パッケージ管理組織が2つあって、それぞれに登録されているような状況だったらしい。登録名や登録情報が食い違う場合もある。登録の最新バージョンも違う、と。二重管理の悲劇。

パッケージやモジュールの名前が、ファイルシステムディレクトリ名/ファイル名と結びついていると、OSによる名前の扱いの違いがリスクになる。大文字小文字の違いとか、使える文字とか。これはあるあるネタだ。

./bower_components/ の下にファイルを配置したのが、./node_modules/ に変わった。パスの変更。こういう変更も地味に痛い(ボディブローの痛さ)。


次、これを読むと、

アセットバンドラー 〈asset bundler〉つう知らん言葉に出会った。具体的にはwebpackというヤツ。packだから確かにバンドラーっぽい。

だが、どうもタスクランナー(つうのか、デキの悪いビルドツール機能)も入っているようだ。なんか、ツール間での機能・役割の重複があるなー。本来のタスクランナーはどうなってるんだ?

ともかくも、webpackもnode.jsエコシステムに乗っかる感じで動くようだ。node_modules/ の下のnpmモジュールをいじる感じみたい。

yarnてのはベターnpmなんだそうだ。

ところで、タスクランナーがイヤで、npm一本、npm-scriptsだけでやる、なんて話もあったな。シェルに頼るならMakefileでも同じだと思うけど、、、、

どうせフロントエンドやる機会はないだろうが、所感をまとめておくと:

  1. npmエコシステムは安定しているから、頼ってもいいだろう。
  2. grunt, gulpみたいなものは信用ならん。簡単なら、npm-scripts、複雑ならmakeでいいだろう。
  3. bowerが終わったのは、npmと重複機能を実装していたからだろう。重複機能には要注意だな。その意味で、grunt, gulpとwebpackの機能重複は嫌な匂いがする。
  4. アセットバンドラーという種類のソフトウェアが必要らしい。まー、必要だろうな、確実に。で、webpackという実装がある。
  5. 豆知識: ローカルインストールでは、./node_modules/.bin/ にツールの実行コマンドが置かれるらしい。このディレクトリを$NPM_BINとか書く。

やるやらないはともかくとして、webpackというものはソフトウェアとして面白そうだ。