Parcelを使ったウェブアプリの構築
インストール
#始める前に、NodeとYarnまたはnpmをインストールし、プロジェクト用のディレクトリを作成する必要があります。その後、Yarnを使ってアプリにParcelをインストールします。
yarn add --dev parcel
または、npmを使う場合は以下を実行します。
npm install --save-dev parcel
プロジェクトの設定
#Parcelがインストールされたので、アプリのソースファイルを作成しましょう。Parcelはあらゆる種類のファイルをエントリポイントとして受け入れますが、HTMLファイルから始めるのが良いでしょう。Parcelはそこからすべての依存関係を辿ってアプリをビルドします。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>My First Parcel App</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
Parcelには開発サーバーが組み込まれており、変更を加えるとアプリが自動的に再構築されます。起動するには、エントリファイルを指定してparcel
CLIを実行します。
yarn parcel src/index.html
または、npmを使う場合は以下を実行します。
npx parcel src/index.html
ブラウザでhttp://localhost:1234/を開くと、上記で作成したHTMLファイルが表示されます。
次に、JavaScriptやCSSファイルなど、HTMLファイルに依存関係を追加することができます。例えば、styles.css
ファイルを作成し、<link>
タグを使ってindex.html
ファイルから参照したり、<script>
タグを使って参照されるapp.js
ファイルを作成したりすることができます。
h1 {
color: hotpink;
font-family: cursive;
}
console.log('Hello world!');
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>My First Parcel App</title>
<link rel="stylesheet" href="styles.css" />
<script type="module" src="app.js"></script>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
変更を加えると、ページをリフレッシュしなくても、ブラウザでアプリが自動的に更新されるはずです。
この例では、バニラHTML、CSS、JavaScriptの使用方法を紹介しましたが、ParcelはReactやTypeScriptなど、多くの一般的なウェブフレームワークや言語にも対応しています。レシピや言語のセクションで詳細をご覧ください。
パッケージスクリプト
#これまではparcel
CLIを直接実行していましたが、package.json
ファイルにスクリプトを作成すると便利です。また、parcel build
コマンドを使って本番環境用にアプリをビルドするスクリプトも設定します。最後に、source
フィールドを使ってエントリを1か所で宣言することもできるので、各parcel
コマンドで重複させる必要がありません。
{
"name": "my-project",
"source": "src/index.html",
"scripts": {
"start": "parcel",
"build": "parcel build"
},
"devDependencies": {
"parcel": "latest"
}
}
これで、yarn build
を実行して本番環境用にプロジェクトをビルドし、yarn start
を実行して開発サーバーを起動することができます。
ブラウザターゲットの宣言
#デフォルトでは、Parcelはコードのトランスパイルを実行しません。つまり、最新の言語機能を使ってコードを書くと、Parcelはそれをそのまま出力します。アプリがサポートするブラウザは、browserslist
フィールドを使って宣言できます。このフィールドが宣言されている場合、Parcelはサポートされているブラウザとの互換性を確保するために、コードをそれに応じてトランスパイルします。
{
"name": "my-project",
"source": "src/index.html",
"browserslist": "> 0.5%, last 2 versions, not dead",
"scripts": {
"start": "parcel",
"build": "parcel build"
},
"devDependencies": {
"parcel": "latest"
}
}
ターゲットの詳細、およびParcelの差分バンドル自動サポートについては、ターゲットページをご覧ください。
次のステップ
#プロジェクトの設定が完了したので、Parcelのより高度な機能について学ぶことができます。開発と本番環境に関するドキュメントを参照し、一般的なウェブフレームワークやツールを使った詳細なガイドについては、レシピと言語のセクションをご覧ください。