node 自定义脚手架

2 篇文章 0 订阅

一、项目环境

  1. node v12.16.1

  2. ejs( 模板语言、帮助javaScript生成 html文件)

    yarn add ejs // yarn 下载安装 npm install ejs // npm 安装

  3. inquirer 引导用户输入

二、生成脚手架

  1. 进入项目目录(初始化项目)

    yarn init(会自动创建package.json)

  2. 在pageage.json中添加bin

    {
      "name": "cli-mode",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "bin": {
        "cli-mode": "./cli.js"
      },
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "",
      "license": "ISC",
      "dependencies": {
        "ejs": "^3.1.6",
        "inquirer": "^8.0.0"
      }
    }
    
  3. 在根目录下创建cli.js文件,window系统文件首行必须写 #!/usr/bin/env node

    #!/usr/bin/env node
    
    // 引入模块
    const inquirer = require('inquirer')
    const path = require('path')
    const fs = require('fs')
    const ejs = require('ejs')
    
    // 引导用户输入
    inquirer.prompt([
        {
            type: 'input',
            name: 'name',
            message: 'Please enter the project name'
        }
    ])
    .then(res => {
        // 返回用户输入结果
        console.log(res)
        
        // 模板目录
        const templateUrl = path.join(__dirname, 'template');
    
        // 目标目录
        const distUrl = process.cwd()
    
        // 读取文件
        fs.readdir(templateUrl, (error, files) => {
            // 抛出异常
            if (error) {throw error}
    
            files.forEach(file => {
    
                // 文件绝对路径
                const absUrl = path.join(templateUrl, file)
                // ejs 渲染模板
                ejs.renderFile(absUrl, res, (error, success) => {
    
                      // 抛出异常
                      if (error) {throw error}
                        
                      // 写入文件
                      fs.writeFileSync(path.join(distUrl, file), success)
    
                })
            })
    
        })
    
    })
    
  4. 在根目录下运行yarn link 或者 npm link (把cli-mode命令链接到全局)

  5. 运行 cli-mode

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜丶陌颜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值