在项目中添加 plop - 常用工具脚手架(generator)

类似于 yeoman 的工具,但更轻量,适合在项目中使用(特别是长期维护类型的项目)

01 准备好 plop-slim 项目

需要从这个项目里 copy 需要的文件

# clone 到 ~/aric-tpls 目录
git clone git@github.com:aric-tpls/plop-slim.git

02 到你的项目,安装基本包

安装依赖,复制文件到你自己的项目

# copy files
cd ~/target-directory
cp -R ~/aric-tpls/plop-slim/.templates ~/aric-tpls/plop-slim/plopfile.js .
# copy这句可以优化
cp -R ~/aric-tpls/plop-slim/{.templates,plopfile.js} .

# install plop to devDependencies
yarn add plop @jswork/plop-utils --dev

03 添加 plop 命令到 scripts 中

添加 plop 到 scripts 中去

# set npm scripts
npm pkg set scripts.plop="plop"
# 另外可以安装 plop
npm i -g plop

04 定制一个 generator

示例 generator

import { metadata } from '@jswork/plop-utils';

export default function (
  /** @type {import('plop').NodePlopAPI} */
  plop
) {
  plop.setGenerator('component', {
    description: 'Create a component',
    prompts: [
      {
        type: 'input',
        name: 'name',
        message: "What is this component's name?"
      }
    ],
    actions: [
      {
        type: 'addMany',
        destination: 'src/components/{{ name }}/',
        templateFiles: '.templates/component/*.hbs',
        data: metadata
      }
    ]
  });
}

05 一些约定

相关约定

约定代码
默认的 templates 路径
# 默认路径
./.templates/

# 示例
.
└── component
    ├── index.js
    ├── index.tsx.hbs
    └── locale.yml.hbs
plop yo yeoman generator