脚手架工具的原理(二)

本文用纯node.js来构建一个脚手架工具。

上一篇文章中已经介绍了如何用yeomon的generator来实现一个自己的脚手架,本篇文章我们来用node.js寿司一个脚手架。

在上一篇文章中,我们主要使用了yeomon封装好的ejs模板语法以及命令行的交互功能,

首先我们先创建一个文件夹并安装下载ejs模板语法以及inquirer命令行交互语法

  npm install ejs inquirer

建立好以后,在cli中添加一下代码

#!/usr/bin/env node
// 命令行脚本文件(入口文件),在package.json注入bin入口
// 目的:1、读模板文件 2、命令行交互
const fs = require("fs");
const path = require("path");
const inquirer = require("inquirer");
const ejs = require("ejs");

// 命令行交互
inquirer
  .prompt([
    {
      type: "input",
      name: "title",
      message: "项目名称",
    },
  ])
  .then((userInput) => {
    // console.log(userInput)
    // 读取当前运行文件所在的目录,模板目录
    const templateDir = path.join(__dirname, "templates");
    // 运行行的命令目录,需要写入的路径
    const destDir = process.cwd();
    // 读入templateDir中的文件写入disDir
    fs.readdir(templateDir, (err, files) => {
      // files是template下面的所有文件·
      if (err) throw err;
      files.forEach((file) => {
        ejs.renderFile(
          path.join(templateDir, file), //读取这个file的文件内容
          userInput,
          (err, result) => {
            if (err) throw err;
            fs.writeFileSync(path.join(destDir, file), result);
          }
        );
      });
    });
  });

最后npm link后,在代码中执行本项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值