Skip to content

如何开发一个扩展包(脚手架)

上次更新 2024年11月27日星期三 1:44:26 字数 0 字 时长 0 分钟

写在前面

人们都爱用脚手架,因为脚手架可以快速搭建项目,减少重复工作。

1. 创建一个扩展包

bash
    mkdir my-cli

2. 初始化项目

bash
    cd my-cli
    npm init -y

3. 安装依赖

bash
    npm i npm install chalk figlet inquirer nanospinner obtain-git-repo

简述

4. 修改 package.json

json
    ....
    "type":"models"
    "bin":{
        "yhx-cli":"index.js"
    }
    ...

5. 创建入口文件

bash
    touch index.js

index.js

javascript
#!/usr/bin/env node

import chalk from "chalk";
import inquirer from "inquirer";
import fs from "fs";
import { download } from "obtain-git-repo";
import { createSpinner } from "nanospinner";
import figlet from "figlet";

import terminalLink from "terminal-link";

figlet("yanghaixin", async function (err, data) {
  //打印文字图案
  console.log(data);
  //可点击链接
  const github = terminalLink("github", "https://github.com/yhx-yhx/ ");
  const gitee = terminalLink("gitee", "https://gitee.com/yhx825/ ");
  console.log(
    chalk.green(
      `欢迎使用ndoecli,有任何问题欢迎前往${github},或者${gitee},提出你的issuses`
    )
  );

  //询问用户
  const message = await inquirer.prompt({
    name: "dirname",
    type: "input",
    message: "请输入目录名",
    default() {
      return "yhx_cli";
    },
  });

  //目录是否已经存在
  const dirIsExists = fs.existsSync(message.dirname);

  if (dirIsExists) {
    console.log(chalk.redBright("目录已经存在"));
  } else {
    //显示下载动画
    const spinner = createSpinner("开始下载...").start();
    //下载git代码
    download("direct:xxxx", message.dirname, { clone: true }, function (err) {
      if (err) {
        spinner.error({ text: "下载失败" });
      } else {
        spinner.success({
          text: "项目创建成功,请依次执行以下命令",
        });
        console.log(chalk.white(`cd ${message.dirname}`));
        console.log(chalk.white("npm install"));
        console.log(chalk.white("npm run dev"));
        return;
      }
    });
  }
});

测试执行

在项目中执行如下命令进行测试

bash
    node .

发布项目

在 github 上创建一个仓库,将项目发布到 github 上,然后将项目发布到 npm 上 首先注册一个npm账号 然后在命令号中进行登录 ,需要的注意要使用 npm 官方源进行登录

bash
    npm login

然后执行发布命令

bash
    npm publish

登录npm 在个人页面就可以看到发布的项目了

更新版本

在发布项目后,如果需要更新版本,只需要修改 package.json 中的版本号,然后执行发布命令即可

bash
    npm publish

用户安装

在用户安装脚手架时,需要使用 npm 进行安装

bash
    npm install -g yhx-cli

然后就可以执行 yhx-cli 了

bash
    yhx-cli