プロジェクトテンプレートの設定

パッケージが設定オブジェクトを返すためのメインファイル(デフォルトでは index.js)を提供することは必須です。いくつかのオプションにより、スキャフォールディングプロセスをカスタマイズできます。

pluginTemplatesPath

このオプションのフィールドは、WordPressプラグインシェルに関連するファイルテンプレートを上書きすることを可能にします。パスは、.mustache拡張子で終わるテンプレートファイルがある場所を指します(ネストされたフォルダーもサポートされています)。設定されていない場合、ツールは独自のテンプレートセットを使用します。

例:

  1. const { join } = require( 'path' );
  2. module.exports = {
  3. pluginTemplatesPath: join( __dirname, 'plugin-templates' ),
  4. };

blockTemplatesPath

このオプションのフィールドは、個々のブロックに関連するファイルテンプレートを上書きすることを可能にします。パスは、.mustache拡張子で終わるテンプレートファイルがある場所を指します(ネストされたフォルダーもサポートされています)。設定されていない場合、ツールは独自のテンプレートセットを使用します。

例:

  1. const { join } = require( 'path' );
  2. module.exports = {
  3. blockTemplatesPath: join( __dirname, 'block-templates' ),
  4. };

assetsPath

この設定は、静的アセット(画像やフォントなど)を使用するWordPressプラグインをスキャフォールドするテンプレートに役立ちます。これらのアセットは処理されるべきではありません。アセットが存在する場所を指すパスを提供します。生成されたプラグインのassetsサブフォルダーにコピーされます。

例:

  1. const { join } = require( 'path' );
  2. module.exports = {
  3. assetsPath: join( __dirname, 'plugin-assets' ),
  4. };

defaultValues

  1. *例:*
  2. ``````bash
  3. module.exports = {
  4. defaultValues: {
  5. slug: 'my-fantastic-block',
  6. title: 'My fantastic block',
  7. dashicon: 'palmtree',
  8. version: '1.2.3',
  9. },
  10. };
  11. `

以下の設定可能な変数は、テンプレートファイルで使用されます。テンプレート作成者は、ユーザーがデータを提供しない場合に使用するデフォルト値を変更できます。

プロジェクト:

  • wpScripts(デフォルト: true) – @wordpress/scriptsパッケージとの統合を有効にし、package.jsonに共通のスクリプトを追加します。
  • wpEnv(デフォルト: false) – @wordpress/envパッケージとの統合を有効にし、package.jsonenvスクリプトを追加します。
  • customScripts(デフォルト: {}) – package.jsonに追加するカスタムスクリプトのリスト。デフォルトスクリプトを上書きすることも可能です。
  • npmDependencies(デフォルト: []) – wpScriptsが有効なときに、npm installでプロジェクトにインストールされるリモートnpmパッケージのリスト。
  • npmDevDependencies(デフォルト: []) – wpScriptsが有効なときに、npm install --save-devでプロジェクトにインストールされるリモートnpmパッケージのリスト。
  • customPackageJSON(デフォルトなし) – 生成されたpackage.jsonファイルの追加プロパティを定義することを許可します。

プラグインヘッダーフィールド([詳細を学ぶ](/read/wordpress/0aa1133fd7f2a1e6.md)):

  • pluginURI(デフォルトなし) – プラグインのホームページ。
  • version(デフォルト: '0.1.0') – プラグインの現在のバージョン番号。
  • author(デフォルト: 'The WordPress Contributors') – プラグインの著者の名前。
  • license(デフォルト: 'GPL-2.0-or-later') – プラグインのライセンスの短い名前。
  • licenseURI(デフォルト: 'https://www.gnu.org/licenses/gpl-2.0.html') – ライセンスの全文へのリンク。
  • domainPath(デフォルトなし) – 翻訳用のカスタムドメインパス(詳細情報)。
  • updateURI:(デフォルトなし) – プラグインのカスタム更新URI([関連開発ノート](https://make.wordpress.org/core/2021/06/29/introducing-update-uri-plugin-header-in-wordpress-5-8/))。

ブロックメタデータ([詳細を学ぶ](/read/wordpress/683dbccb07e6cf56.md)):

  • folderName(デフォルト: src) – block.jsonファイルおよびblockTemplatesPath設定で指定されたフォルダーに含まれるブロックテンプレートから生成された他のオプションのブロックファイルの場所。
  • $schema(デフォルト: https://schemas.wp.org/trunk/block.json) – ブロック検証に使用されるスキーマURL。
  • apiVersion(デフォルト: 2) – ブロックAPIバージョン([関連開発ノート](https://make.wordpress.org/core/2020/11/18/block-api-version-2/))。
  • slug(デフォルトなし) – ブロック名での識別に使用されるブロックスラッグ。
  • namespace(デフォルト: 'create-block') – ブロック名の内部名前空間。
  • title(デフォルトなし) – ブロックの表示タイトル。
  • description(デフォルトなし) – ブロックの短い説明。
  • dashicon(デフォルトなし) – ブロックを識別しやすくするアイコンプロパティ([利用可能な値](https://developer.wordpress.org/resource/dashicons/))。
  • category(デフォルト: 'widgets') – ブロックは、ユーザーがブラウズして発見するのを助けるためにカテゴリにグループ化されます。コアが提供するカテゴリは、textmediadesignwidgetsthemeembedです。
  • attributes(デフォルトなし) – ブロック属性([詳細情報](https://developer.wordpress.org/block-editor/developers/block-api/block-attributes/))。
  • supports(デフォルトなし) – オプションのブロック拡張サポート機能([詳細情報](https://developer.wordpress.org/block-editor/developers/block-api/block-supports/))。
  • editorScript(デフォルト: 'file:./index.js') – エディタースクリプトの定義。
  • editorStyle(デフォルト: 'file:./index.css') – エディタースタイルの定義。
  • style(デフォルト: 'file:./style-index.css') – フロントエンドおよびエディタースタイルの定義。
  • render(デフォルトなし) – フロントエンドに表示する前にサーバー上でブロックタイプをレンダリングするために使用されるPHPファイルへのパス。
  • customBlockJSON(デフォルトなし) – 生成されたblock.jsonファイルの追加プロパティを定義することを許可します。
  • transformer(デフォルト: ( view ) => view) – create-blockツールによって生成されたすべての変数を受け取り、値のオブジェクトを返す関数。この関数は、既存の値を変更し、新しい変数を追加する能力を提供します。

transformer examples

この例は、スラッグ変数に生成された値を追加します。

  1. transformer: ( view ) => {
  2. const hex = getRandomHexCode();
  3. return {
  4. ...view,
  5. slug: `${ view.slug }-${ hex }`,
  6. };
  7. },

この例は、関連するマスタッシュテンプレートで{{customVariable}}として使用できる新しいカスタム変数を作成します。

  1. transformer: ( view ) => {
  2. return {
  3. ...view,
  4. customVariable: `Custom Value`,
  5. };
  6. },

variants

バリアントは、テンプレートのバリエーションを作成するために使用されます。バリアントは、独自のdefaultValuesを提供することで、任意のdefaultValuesを上書きできます。

  1. module.exports = {
  2. defaultValues: {
  3. slug: 'my-fantastic-block',
  4. title: 'My fantastic block',
  5. dashicon: 'palmtree',
  6. version: '1.2.3',
  7. },
  8. variants: {
  9. primary: {},
  10. secondary: {
  11. title: 'My fantastic block - secondary variant',
  12. },
  13. },
  14. };

バリアントは、--variantフラグを使用してアクセスされます。すなわち--variant secondary

バリアントが提供されていない場合、定義されている場合は最初のバリアントが使用されます。

マスタッシュ変数は、ファイル内で条件付きでコンテンツを出力するために使用できるバリアントのために作成されます。形式は{{isVARIANT_NAMEVariant}}です。

  1. {{#isPrimaryVariant}}
  2. This content is only rendered if `--variant primary` is passed.
  3. {{/isPrimaryVariant}}
  4. {{#isSecondaryVariant}}
  5. This content is only rendered if `--variant secondary` is passed.
  6. {{/isSecondaryVariant}}