0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TIPSAdvent Calendar 2023

Day 15

hygen 使ってみた

Last updated at Posted at 2023-12-14

インストール

yarn add hygen --dev

npm の場合は npm install --save-dev してください。devDependencies に入れます。bundle 時に入っていてもうれしくないので。

hygen を使ってみる

yarn hygen init self

このコマンドを使うと、テンプレートのジェネレータが生成されます。

yarn hygen generator with-prompt component

さらに、このコマンドで _templates/components 以下にファイルが生成されます。生成されたファイルたちを使ってコード生成を行います。

テンプレートの .t ファイルと .js を書き換える

_template/components/story/prompt.js
module.exports = [
  {
    type: 'input',
    name: 'name',
    message: "ファイル名を入力"
  },
]

_template/components/story/component.t
---
to: src/components/<%= name %>.stories.ts
---
import { defineComponent } from 'vue';
import <%= name %> from './<%= name %>.vue';

const meta = {
  title: 'components/<%= name %>',
  component: <%= name %>,
};

export const Default = {
  render: () => defineComponent({
    components: {
      <%= name %>,
    },
    template: `
      <<%= name %> />
    `,
  })
};

export default meta;

こっそり、ディレクトリ名を with-prompt から story に変更しました。コード生成時には story という識別子を使うことができます。
見ての通りのテンプレートエンジンで、今回は Storybook のストーリーを生成するように書きました。

prompt.js は対話的生成に使えます。

対話的生成

$ yarn hygen component story
> ✔ ファイル名を入力 · hoge

> Loaded templates: _templates
>        added: src/components/hoge.stories.ts

yarn hygen component {コンポーネントの名前} で生成が始まります。

おわり

願わくば設計資料からそのままコンポーネントが生成されるようになってほし。。。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?