経験知ロゴ

@wordpress/scriptsをTypesccript対応にしてWordPresプラグインを開発する方法

※本ページはプロモーションが含まれています

@wordpress/scripts

WordPressプラグインの管理画面をWordPressに同梱されているReactを使って開発しようとしてます。

ビルド環境などは、@wordpress/scriptsにまとまっており、意外と簡単に環境は整います。

具体的な手順は下記記事を参考に進めて構築できました。

ですが、Typescriptに対応していないので、対応させました。

その手順をメモします。

ts-loaderを導入

Typescriptのコンパイルにts-loaderを使うのでインストール。

npm install ts-loader --save-dev

webpack.config.jsを拡張

@wordpress/scripts/config/webpack.configを拡張。

  • @wordpress/scriptsのデフォルトの設定では、src/index.jsがエントリポイントになっているので変更。
  • tsxファイルはts-loaderを使うように。
  • outputファイル名もmain.indexになってしまうのでindex.jsに変更。この辺はお好みで。
const path = require( 'path' );
const defaultConfig = require( '@wordpress/scripts/config/webpack.config' );

module.exports = {
    ...defaultConfig,
    entry: './src/index.tsx',
    module: {
        ...defaultConfig.module,
        rules: [
            {
                test: /\.tsx?$/,
                use: 'ts-loader',
                exclude: /node_modules/,
            },
            ...defaultConfig.module.rules,
        ],
    },

    resolve: {
        ...defaultConfig.resolve,
        extensions: [ '.tsx', '.ts', 'js', 'jsx' ],
    },

    output: {
        ...defaultConfig.output,
        filename: 'index.js',
        path: path.resolve( __dirname, 'build' ),
    },
};

@wordpress/scripts/config/webpack.configはバージョンが上がることで設定が変更になる場合があるので注意。

@wordpress/scripts/config/webpack.configの拡張については下記記事で書かれている。

Reactを使う

JSXを使っているファイルでは、Ractの読み込みを下記のようにする必要がある。

import * as React from ‘react’;

参考

Typescript化に関しては下記記事を参考にしました。

詳細なコードは下記リポジトリで確認できます。

おわりに

@wordpress/scriptsのページだと、.jsx, .ts, .tsxファイルやTypescriptに対応しているっぽいことを書いてありますが、@wordpress/scripts/config/webpack.configを見てみるとtsx、tsファイルの対応が書かれていないので対応していない?

役に立ったらこの記事のシェアをお願いします

ブログのフォロー・RSS購読は下記ボタンから