クイックスタート
ブロックを作成して登録するために必要なファイルの構造をスキャフォールドするために@wordpress/create-block
パッケージを使用すると、設定なしでwp-scripts
を使用した最新のJavaScriptビルドセットアップも得られますので、wp-scripts
をインストールしたり、アセットをエンキューしたりする心配はありません。詳細については、create-block
を始めるを参照してください。
インストール
コンピュータにNode.jsとnpm
がインストールされていることを確認してください。まだの場合は、Node.js開発環境ガイドを確認してください。
次に、プロジェクトフォルダーを作成し、package.json
ファイル、build
フォルダー、およびsrc
フォルダーが含まれていることを確認してください。src
フォルダーにはindex.js
ファイルも含まれている必要があります。
package.json
ファイルを以前に作成していない場合は、ターミナルでプロジェクトフォルダーに移動し、npm init
コマンドを実行します。インタラクティブなプロンプトが手順を案内します。お好みで設定してくださいが、「エントリーポイント」を尋ねられたら、build/index.js
と入力してください。
もちろん、wp-scripts
を使用してプロジェクトを設定する方法はたくさんありますが、これはBlock Editor Handbook全体で使用される推奨アプローチです。
最後に、次のコマンドを実行してwp-scripts
パッケージを開発依存関係としてインストールします:
npm install @wordpress/scripts --save-dev
インストールが完了すると、プロジェクトフォルダーは次のようになります:
example-project-folder/
├── build/
├── node_modules/ (autogenerated)
├── src/
│ └── index.js
├── package-lock.json (autogenerated)
└── package.json
基本的な使用法
インストールが完了したら、wp-scripts
に付属する事前定義されたスクリプトをpackage.json
ファイルのスクリプトセクションで参照することで実行できます。以下はその例です:
{
"scripts": {
"start": "wp-scripts start",
"build": "wp-scripts build"
}
}
これらのスクリプトは、npm run {script name}
コマンドを使用して実行できます。
wp-scriptsを使用したビルドプロセス
最も頻繁に使用する2つのスクリプトはstart
とbuild
で、これらはビルドステップを処理します。すべてのオプションについては、パッケージドキュメントを参照してください。
プロジェクトに取り組む際は、npm run start
コマンドを使用してください。これにより、開発サーバーが起動し、変更が検出されるたびにプロジェクトが自動的に再ビルドされます。build/index.js
のコンパイルされたコードは最適化されないことに注意してください。
プロジェクトをデプロイする準備ができたら、npm run build
コマンドを使用します。これにより、コードが最適化され、プロダクション準備が整います。
ビルドが完了すると、build/index.js
にコンパイルされたJavaScriptファイルが作成されます。
ビルドプロセスでは、依存関係の配列とバージョン番号(キャッシュバスティング用)を含むbuild/index.asset.php
ファイルも作成されます。このwp-scripts
ビルドプロセスなしでブロックを登録するには、*.asset.php
依存関係ファイルを手動で作成する必要があります(例を参照)。
アセットのエンキュー
エディター内の他のコンテキストでファイルを手動でエンキューするには、[エディターでのアセットのエンキュー](/read/wordpress/ff1a78d0c8363ba3.md)ガイドを参照してくださいが、ここでは典型的な実装を示します。
``````bash
/**
* Enqueue Editor assets.
*/
function example_project_enqueue_editor_assets() {
$asset_file = include( plugin_dir_path( __FILE__ ) . 'build/index.asset.php');
wp_enqueue_script(
'example-editor-scripts',
plugins_url( 'build/index.js', __FILE__ ),
$asset_file['dependencies'],
$asset_file['version']
);
}
add_action( 'enqueue_block_editor_assets', 'example_project_enqueue_editor_assets' );
`
エディターでファイルを手動でエンキューする例もあります。
次のステップ
<a name="maintaining-code-quality"></a>
### コード品質の維持
開発者がコードの品質を向上させるのを助けるために、`````wp-scripts`````にはESLintやPrettierなどのツールが事前に設定されています。ESLintはJavaScriptがベストプラクティスと[WordPressコーディング標準](/read/wordpress/f5b66f34a23fec88.md)に準拠していることを確認し、Prettierはコードを自動的にフォーマットします。利用可能なスクリプトには次のものが含まれます:
``````bash
{
"scripts": {
"format": "wp-scripts format",
"lint:css": "wp-scripts lint-style",
"lint:js": "wp-scripts lint-js",
}
}
`
定期的にコードをリンティングおよびフォーマットすることで、自分自身や他の開発者にとって機能的で明確かつ保守可能なコードを確保できます。
テストの実行
コードを書くことを超えて、その機能を検証することは重要です。wp-scripts
にはJavaScriptテストフレームワークであるJestが含まれており、エンドツーエンドおよびユニットテストスクリプトの両方があります:
{
"scripts": {
"test:e2e": "wp-scripts test-e2e",
"test:unit": "wp-scripts test-unit-js"
}
}
ユニットテストは、関数などの個々のコードユニットが意図した通りに機能することを検証し、エンドツーエンド(E2E)テストは、実際のユーザーシナリオをシミュレートしてシステムのすべての部分がシームレスに連携して機能することを確認します。
高度な設定
wp-scripts
は堅実なデフォルト設定を提供しますが、より専門的なセットアップが必要な場合もあります。良いニュースは、wp-scripts
が非常に適応性が高いことです。たとえば、デフォルトのwebpack設定を拡張およびオーバーライドでき、ローダーやプラグインを追加したり、ビルドプロセスのほぼすべての部分を変更したりできます。この柔軟性により、プロジェクトが成長するにつれて、または要件が変わるにつれて、wp-scripts
を進化するニーズに合わせて調整できます。
すべての設定オプションについては、wp-scripts
パッケージドキュメントを参照してください。
追加リソース
- @wordpress/scripts (公式ドキュメント)
- webpackとWordPressパッケージの相互作用 (WordPress開発者ブログ)