最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node如何實(shí)現(xiàn)簡(jiǎn)單的腳手架淺析

 更新時(shí)間:2022年05月31日 09:15:19   作者:小跳蛙呀  
在工作中,需要開發(fā)一個(gè)腳手架,用于給相關(guān)用戶提供相關(guān)的開發(fā)便利性,下面這篇文章主要給大家介紹了關(guān)于node如何實(shí)現(xiàn)簡(jiǎn)單的腳手架的相關(guān)資料,需要的朋友可以參考下

腳手架的實(shí)現(xiàn)原理無(wú)外乎:

通過命令行交互詢問用戶問題

根據(jù)用戶的答案生成相應(yīng)的項(xiàng)目結(jié)構(gòu)

腳手架很多,比如特定語(yǔ)言封裝好的腳手架集成方案:react-app,vue-cli,還有通用的腳手架工具Yeoman,包括項(xiàng)目?jī)?nèi)好用的模板生成工具plop等,今天我們來(lái)說一下用nodejs生成一個(gè)簡(jiǎn)單的腳手架

  • 首先創(chuàng)建文件夾,cd到當(dāng)前文件夾,并且初始化一個(gè)package.json文件
 mkdir sample-saclfolding 
 cd sample-saclfolding 
 yarn init 
  • 在項(xiàng)目根目錄下創(chuàng)建cli.js文件,并且在package.json中把cli.js設(shè)為入口文件

  • 在根目錄下創(chuàng)造模板文件夾,并增加模板文件

  • node里面的命令行交互需要借助inquirer,在項(xiàng)目?jī)?nèi)安裝inquirer
yarn add inquirer --dev

5.需要借助ejs渲染文件,在項(xiàng)目?jī)?nèi)安裝ejs

yarn add ejs --dev

6.在cli.js里面增加腳手架執(zhí)行的業(yè)務(wù)邏輯

#! /usr/bin/env node 
//頭部必須加,用于指明這個(gè)腳本文件的解釋程序,增加這一行是為了指定用node執(zhí)行腳本文件

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為用戶輸入的最終結(jié)果,返回:{name:'你輸入的答案'}
    const tmplDir=path.join(__dirname,'templates') //模板的路徑
    const destDir=process.cwd(); //目標(biāo)路徑
    fs.readdir(tmplDir,((err, files) => { //fs.readdir讀取路徑文件夾里的所有文件
        if(err) throw err
        files.forEach((file)=>{ //循環(huán)文件夾內(nèi)所有文件
            ejs.renderFile(path.join(tmplDir,file),answer, (err,result)=>{//根據(jù)文件渲染模板
                fs.writeFileSync(path.join(destDir,file),result)//根據(jù) 路徑,內(nèi)容 寫入文件
            })
        })
    })
    )
})
  • 把模板文件內(nèi)用到name的地方用<%= name %>替代

  • 在項(xiàng)目?jī)?nèi)運(yùn)行以下命令,把定義好的腳手架鏈到全局。
yarn link
  • 新建文件夾,進(jìn)入到新建的文件夾內(nèi),運(yùn)行項(xiàng)目名命令可以生成文件模板,比如示例項(xiàng)目名為 sample-scaffolding,運(yùn)行 sample-scaffolding即可
mkdir demo
cd demo
sample-scaffolding

10.輸入name的值,則生成了模板文件。模板文件里的name為你輸入的value

總結(jié)

到此這篇關(guān)于node如何實(shí)現(xiàn)簡(jiǎn)單腳手架的文章就介紹到這了,更多相關(guān)node實(shí)現(xiàn)腳手架內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Node.js腳手架

    詳解如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Node.js腳手架

    本篇文章主要介紹了如何實(shí)現(xiàn)一個(gè)簡(jiǎn)單的Node.js腳手架,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2017-12-12
  • Node 使用express-http-proxy 做api網(wǎng)關(guān)的實(shí)現(xiàn)

    Node 使用express-http-proxy 做api網(wǎng)關(guān)的實(shí)現(xiàn)

    這篇文章主要介紹了Node 使用express-http-proxy 做api網(wǎng)關(guān)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Node.js一行代碼實(shí)現(xiàn)靜態(tài)文件服務(wù)器的方法步驟

    Node.js一行代碼實(shí)現(xiàn)靜態(tài)文件服務(wù)器的方法步驟

    這篇文章主要介紹了Node.js一行代碼實(shí)現(xiàn)靜態(tài)文件服務(wù)器的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • node.js學(xué)習(xí)筆記之koa框架和簡(jiǎn)單爬蟲練習(xí)

    node.js學(xué)習(xí)筆記之koa框架和簡(jiǎn)單爬蟲練習(xí)

    這篇文章主要介紹了node.js學(xué)習(xí)筆記之koa框架和簡(jiǎn)單爬蟲練習(xí),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-12-12
  • Node 創(chuàng)建第一個(gè)服務(wù)器應(yīng)用的操作方法

    Node 創(chuàng)建第一個(gè)服務(wù)器應(yīng)用的操作方法

    Node.js是一個(gè)基于Chrome V8引擎的JavaScript運(yùn)行環(huán)境,可以用于構(gòu)建高性能的網(wǎng)絡(luò)應(yīng)用程序,它采用事件驅(qū)動(dòng)、非阻塞I/O模型,使得程序可以以高效地方式處理并發(fā)請(qǐng)求,這篇文章主要介紹了Node 創(chuàng)建第一個(gè)服務(wù)器應(yīng)用,需要的朋友可以參考下
    2024-02-02
  • node使用Mongoose類庫(kù)實(shí)現(xiàn)簡(jiǎn)單的增刪改查

    node使用Mongoose類庫(kù)實(shí)現(xiàn)簡(jiǎn)單的增刪改查

    Mongoose是在nodejs環(huán)境中對(duì)MongoDB數(shù)據(jù)庫(kù)操作的封裝,這篇文章主要介紹了node使用Mongoose類庫(kù)實(shí)現(xiàn)簡(jiǎn)單的增刪改查,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-11-11
  • 詳解nodejs 文本操作模塊-fs模塊(一)

    詳解nodejs 文本操作模塊-fs模塊(一)

    這篇文章主要介紹了詳解nodejs 文本操作模塊-fs模塊(一),本篇文章詳細(xì)的介紹了文件及目錄的讀寫操作,有興趣的可以了解一下。
    2016-12-12
  • 詳解如何在Node.js中使用中間件處理請(qǐng)求

    詳解如何在Node.js中使用中間件處理請(qǐng)求

    在Node.js中,處理中間件是處理HTTP請(qǐng)求和響應(yīng)的一個(gè)常見方式,甚至扮演著至關(guān)重要的角色,本文將介紹如何在Node.js中使用中間件來(lái)處理請(qǐng)求,感興趣的可以了解下
    2025-02-02
  • node.js快速部署vue代碼詳細(xì)步驟

    node.js快速部署vue代碼詳細(xì)步驟

    眾所周知Vue是現(xiàn)在前端最流行的框架之一,作為前端開發(fā)人員應(yīng)該要熟練的掌握它,下面這篇文章主要給大家介紹了關(guān)于node.js快速部署vue代碼的詳細(xì)步驟,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Node.js常用工具之util模塊

    Node.js常用工具之util模塊

    util是一個(gè)Node.js核心模塊,提供常用函數(shù)的集合,用于彌補(bǔ)JavaScript的功能的不足,util模塊設(shè)計(jì)的主要目的是為了滿足Node內(nèi)部API的需求。下面這篇文章將詳細(xì)的介紹關(guān)于Node.js常用工具之util模塊的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-03-03

最新評(píng)論

江门市| 徐州市| 本溪市| 祥云县| 阳原县| 万荣县| 三台县| 新营市| 雷州市| 隆尧县| 马鞍山市| 勐海县| 阳曲县| 汉阴县| 方正县| 石泉县| 孟津县| 十堰市| 丘北县| 利川市| 吉首市| 靖州| 开远市| 年辖:市辖区| 大英县| 嵊州市| 佛坪县| 文水县| 邵武市| 宣武区| 高雄县| 石景山区| 泾源县| 崇信县| 英吉沙县| 临沧市| 平昌县| 诏安县| 黄浦区| 宜兰市| 广水市|