やしログ

ビルドツール素振り(Parcel編)

created: 2021/04/17
改めて、Parcel を素振りしてみました。

Parcel を使ったビルド設定をやってみる

例によって、 ヌケニンフォルダ から始めます。(詳しくは こちらの記事 を参照ください。)

2021 年 4 月現在 Parcel v2 が開発中(beta)なのですが、今回は v1 で試しました。

まず、 Parcel 本体をインストールします。

$ yarn add -D parcel-bundler

Parcel は、 index.html を起点に必要な js を探し出してビルドを行うため、予め index.html<script> タグを埋め込んでおく必要があります。

  <div id="root"></div>
+ <script src="../src/index.tsx"></script>

package.json 内の script を書き換えます。

"scripts": {
-    "start": "echo start",
-    "build": "echo build",
+    "start": "parcel public/index.html --open",
+    "build": "parcel build public/index.html",
     "test": "echo test"
   },

これで yarn start すると、正常に CRA と同じ結果を表示できるのですが、コンソールを見ると以下のようなエラーが発生しています。

manifest file error

これは、 Parcel が index.html 内の以下の記述を、

<link rel="manifest" href="manifest.json" />

ビルド時に以下のように書き換えてしまうために起こります。

<link rel="manifest" href="/manifest.js" />

マニフェストファイルは本来 .webmanifest 拡張子のファイルですが、各種ブラウザは .json にも対応しています。

さらに、 Parcel は .webmanifest の読み込みもサポートしている(https://parceljs.org/webManifest.html)ようです。(ドキュメント空だけど... 🤔)

従って manifest.webmanifest ファイルを manifest.json に変更し、 index.html 内の記述も同様に変更することで、問題を回避できます。

このマニフェストファイル読み込み時のエラーに関しては、以下の issue を参考にしました。

Parcel は特に設定の必要なくよしなにビルドを行ってくれて楽ですが、ある程度どのように動作するか知っていかないと、エラー時の原因の切り分けが難しいですね・・・。

ここまでの結果は下記に置いています。

引き続き、他のビルドツールの記事も書いていきます!