フリーランスのためのネットビジネス専門学校 ネットで独立開業を目指す人を応援
フリーランスのためのネットビジネス専門学校 ネットで独立開業を目指す人を応援

組織構築としてのNuxt.jsの可能性について

はじめに

最近めっきりBowerを使わなくなりました。

2015年くらいに作ってたWebアプリを久々に眺めてみると、
Bowerを使ってパッケージ管理してるのを見て懐かしさとともに時代を感じました。

「昔はBowerよく使ってたなー」
と思いつつ、なぜオワコン化(まだまだバリバリ使っている方も多いですが)したのか
自分なりに整理してみようと思いました。

Bowerとは

Webアプリケーションのフロントエンドのパッケージ管理ツールです。
2013年〜2016年あたりに流行っていた印象です。

npm install -g bower

でインストールすることで利用可能になります。

bower install <package>

のようにコマンド一つで、jquery, react, Angularなどなどフロントエンドで使うパッケージのインストールや管理ができます。

bower.io/

Bowerとnpm

かつて、フロントエンドのパッケージとバックエンドのパッケージを

  • 一緒に管理するのはちょっと…
  • npmはNode.jsのパッケージを管理するためのものだから、フロントエンドのパッケージ管理には不向き

と言った流れもあり

  • フロントエンドのパッケージ: Bower
  • バックエンドのパッケージ: npm

で管理することが良くありました。

ディレクトリツリーでいうと以下のような感じです。

app/
 ├ bower_components/
 ├ node_modules/
 ├ index.html
 ├  index.js
 ├  bower.json   //フロントエンドのパッケージ依存関係を管理
 └  package.json  //バックエンドのパッケージ依存関係を管理

【javascript】npmとbower【ライブラリ管理】

Bowerのいま

Google Trend

スクリーンショット 2018-12-06 1.32.05.png
Google Trendを見ると、npmやYarnと比較して勢いが低下していることがわかります。
Google Trend npm vs bower vs yarn

npm trends

スクリーンショット 2018-12-06 1.35.24.png
npm trendsで、npmやYarnと比較してみましたが
最近、Yarnにもインストール数で抜かれてしまいました。

npm trends npm vs bower vs yarn

スクリーンショット 2018-12-06 1.27.03.png
Bower公式ページでも

we recommend using Yarn and Webpack or Parcel for front-end projects

とYarnなどを使うことを推奨しています。
ご丁寧にマイグレートする方法までブログで紹介されています。
How to migrate away from Bower?

Bowerがオワコン化した理由

さぁ本題です。
私は、Bowerがオワコン化した理由は以下の4つだと考えます。

1. バンドルツールの充実

過去にはnpmはNode.jsのパッケージ管理を主としており、
フロントエンドのパッケージ管理は弱いのではと言われていましたが

などのバンドルツールの充実により、npmパッケージの多くはフロントエンドでも実行可能になりました。

Bower全盛期の時代から

「package.jsonとbower.jsonの二重管理は面倒」

という声もありましたが、npmだけで賄えるようになってきたので徐々に人口が減っていったのではと思います。

2. Bowerはパッケージのバージョン固定ができない

Bowerには、npmやYarnに搭載されているインストールパッケージのバージョンを
ロックする機能がありません。
パッケージのバージョンが固定されないので、

bower install

を行っても、バージョンが合わず動かなというケースもありえます。

3. Yarnの登場

パッケージのインストールは、そこそこ時間のかかるものも多く
高速にパッケージをインストール可能なYarnの登場は、Bowerのオワコン化に影響を及ぼしているのではないかと思います。

高速にパッケージインストール可能なYarnの登場により、
「早くインストールできるのでフロントエンドもYarnで」
となっていっても不思議ではありません。
(事実、私はそれでBowerを使わなくなりました)

4. Bowerのリポジトリが更新されてない

npmのリポジトリはメンテナンスされているが
bowerの方はメンテナンスされてなくて古くなってることがあります。
また、メンテナンスされなくなったせいで

「npmのリポジトリにはあるが、Bowerリポジトリにはない」

パッケージも出てきました。これはかなり辛いです。

おわりに

Bowerのオワコン化には時代の流れを感じました。
よくお世話になったBowerのオワコン化は個人的に少し寂しかったり。
今当たり前に使っている、Yarnなどもいずれオワコンになってしまうのか。
やはりフロントの流れの速さはすごいなと再認識しました。

[紹介元] HTMLタグが付けられた新着記事 – Qiita 組織構築としてのNuxt.jsの可能性について

コメント

記事に戻る

コメントを残す