備忘録

備忘録

Plopを利用して任意ファイルを自動生成する方法

Ⅰ. はじめに

タイトルの通り「Plopを利用して任意ファイルを自動生成する方法」です。

Ⅱ. 手順

1. plopをインストールする
npm install --save-dev plop
2. ファイルを編集する

package.json

  "scripts": {
+   "plop": "plop"
  }
2. ファイルを作成する

plopfile.mjs

// export している function の 第一引数の型 は NodePlopAPI
// import { NodePlopAPI } from 'plop'

export default function (plop) {
  plop.setGenerator('test001', {
    description: 'テスト用',
    prompts: [
      {
        type: "input", // input, number, password, list, rawlist, expand, confirm, editor, checkbox, ... etc
        name: "name",
        message: "名前を入力して下さい",
      }
    ],
    actions: [
      {
        type: "add", // add, modify, directory, ... etc
        path: "src/{{name}}.ts",
        templateFile: "plop/templates/say_hello.ts.hbs",
      },
      "ファイルを作成しました!"
    ],
  })
}

plop/templates/say_hello.ts.hbs

console.log('Hello {{pascalCase name}}')

実行結果

$ npm run plop
? 名前を入力して下さい tanaka
✔  ++ \src\tanaka.ts                                                                                                                                                                 
ℹ ファイルを作成しました!

$ cat src/tanaka.ts
console.log('Hello Tanaka')

FAQ

Q. Visual Studio Code で *.hbs ファイルのシンタックスハイライトを有効にする方法は?

A. 以下をインストールする
https://marketplace.visualstudio.com/items?itemName=ItsMeAdarsh.vsc-handlebars-ext