node如何实现简单的脚手架浅析

 更新时间:2022年05月31日 09:15:19   作者:小跳蛙呀  
在工作中,需要开发一个脚手架,用于给相关用户提供相关的开发便利性,下面这篇文章主要给大家介绍了关于node如何实现简单的脚手架的相关资料,需要的朋友可以参考下

脚手架的实现原理无外乎:

通过命令行交互询问用户问题

根据用户的答案生成相应的项目结构

脚手架很多,比如特定语言封装好的脚手架集成方案:react-app,vue-cli,还有通用的脚手架工具Yeoman,包括项目内好用的模板生成工具plop等,今天我们来说一下用nodejs生成一个简单的脚手架

  • 首先创建文件夹,cd到当前文件夹,并且初始化一个package.json文件
 mkdir sample-saclfolding 
 cd sample-saclfolding 
 yarn init 
  • 在项目根目录下创建cli.js文件,并且在package.json中把cli.js设为入口文件

  • 在根目录下创造模板文件夹,并增加模板文件

  • node里面的命令行交互需要借助inquirer,在项目内安装inquirer
yarn add inquirer --dev

5.需要借助ejs渲染文件,在项目内安装ejs

yarn add ejs --dev

6.在cli.js里面增加脚手架执行的业务逻辑

#! /usr/bin/env node 
//头部必须加,用于指明这个脚本文件的解释程序,增加这一行是为了指定用node执行脚本文件

const inquirer = require('inquirer');
const path = require('path'); 
const ejs = require('ejs'); 
const fs = require('fs');
inquirer.prompt([ //inquirer.prompt方法命令行交互
    {
        type:'input', //方式:输入
        name:'name',  //得到data的key值为'name'
        message:'your project name' //询问用户的问题
    }
]).then(answer=>{ //answer为用户输入的最终结果,返回:{name:'你输入的答案'}
    const tmplDir=path.join(__dirname,'templates') //模板的路径
    const destDir=process.cwd(); //目标路径
    fs.readdir(tmplDir,((err, files) => { //fs.readdir读取路径文件夹里的所有文件
        if(err) throw err
        files.forEach((file)=>{ //循环文件夹内所有文件
            ejs.renderFile(path.join(tmplDir,file),answer, (err,result)=>{//根据文件渲染模板
                fs.writeFileSync(path.join(destDir,file),result)//根据 路径,内容 写入文件
            })
        })
    })
    )
})
  • 把模板文件内用到name的地方用<%= name %>替代

  • 在项目内运行以下命令,把定义好的脚手架链到全局。
yarn link
  • 新建文件夹,进入到新建的文件夹内,运行项目名命令可以生成文件模板,比如示例项目名为 sample-scaffolding,运行 sample-scaffolding即可
mkdir demo
cd demo
sample-scaffolding

10.输入name的值,则生成了模板文件。模板文件里的name为你输入的value

总结

到此这篇关于node如何实现简单脚手架的文章就介绍到这了,更多相关node实现脚手架内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解如何实现一个简单的Node.js脚手架

    详解如何实现一个简单的Node.js脚手架

    本篇文章主要介绍了如何实现一个简单的Node.js脚手架,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Node 使用express-http-proxy 做api网关的实现

    Node 使用express-http-proxy 做api网关的实现

    这篇文章主要介绍了Node 使用express-http-proxy 做api网关的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • Node.js一行代码实现静态文件服务器的方法步骤

    Node.js一行代码实现静态文件服务器的方法步骤

    这篇文章主要介绍了Node.js一行代码实现静态文件服务器的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • node.js学习笔记之koa框架和简单爬虫练习

    node.js学习笔记之koa框架和简单爬虫练习

    这篇文章主要介绍了node.js学习笔记之koa框架和简单爬虫练习,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-12-12
  • Node 创建第一个服务器应用的操作方法

    Node 创建第一个服务器应用的操作方法

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,可以用于构建高性能的网络应用程序,它采用事件驱动、非阻塞I/O模型,使得程序可以以高效地方式处理并发请求,这篇文章主要介绍了Node 创建第一个服务器应用,需要的朋友可以参考下
    2024-02-02
  • node使用Mongoose类库实现简单的增删改查

    node使用Mongoose类库实现简单的增删改查

    Mongoose是在nodejs环境中对MongoDB数据库操作的封装,这篇文章主要介绍了node使用Mongoose类库实现简单的增删改查,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • 详解nodejs 文本操作模块-fs模块(一)

    详解nodejs 文本操作模块-fs模块(一)

    这篇文章主要介绍了详解nodejs 文本操作模块-fs模块(一),本篇文章详细的介绍了文件及目录的读写操作,有兴趣的可以了解一下。
    2016-12-12
  • 详解如何在Node.js中使用中间件处理请求

    详解如何在Node.js中使用中间件处理请求

    在Node.js中,处理中间件是处理HTTP请求和响应的一个常见方式,甚至扮演着至关重要的角色,本文将介绍如何在Node.js中使用中间件来处理请求,感兴趣的可以了解下
    2025-02-02
  • node.js快速部署vue代码详细步骤

    node.js快速部署vue代码详细步骤

    众所周知Vue是现在前端最流行的框架之一,作为前端开发人员应该要熟练的掌握它,下面这篇文章主要给大家介绍了关于node.js快速部署vue代码的详细步骤,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Node.js常用工具之util模块

    Node.js常用工具之util模块

    util是一个Node.js核心模块,提供常用函数的集合,用于弥补JavaScript的功能的不足,util模块设计的主要目的是为了满足Node内部API的需求。下面这篇文章将详细的介绍关于Node.js常用工具之util模块的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-03-03

最新评论