欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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ú)外乎:

通過(guò)命令行交互詢問(wèn)用戶問(wèn)題

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

腳手架很多,比如特定語(yǔ)言封裝好的腳手架集成方案:react-app,vue-cli,還有通用的腳手架工具Yeoman,包括項(xiàng)目?jī)?nèi)好用的模板生成工具plop等,今天我們來(lái)說(shuō)一下用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' //詢問(wèn)用戶的問(wèn)題
    }
]).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)文章

  • node.js中PC端微信小程序包解密的處理思路

    node.js中PC端微信小程序包解密的處理思路

    我們使用node.js去寫一個(gè)解碼的程序。根據(jù)上邊加密的流程,我們首先讀取加密文件,把前6個(gè)字節(jié)的固定字符串去除,這篇文章主要介紹了node.js中PC端微信小程序包解密,需要的朋友可以參考下
    2021-12-12
  • npm下載慢或下載失敗問(wèn)題解決的三種方法

    npm下載慢或下載失敗問(wèn)題解決的三種方法

    這篇文章主要為大家介紹了npm下載慢或下載失敗問(wèn)題解決的三種方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • 利用node實(shí)現(xiàn)一個(gè)批量重命名文件的函數(shù)

    利用node實(shí)現(xiàn)一個(gè)批量重命名文件的函數(shù)

    這篇文章主要給大家介紹了關(guān)于利用node實(shí)現(xiàn)一個(gè)批量重命名文件的函數(shù)的相關(guān)資料,文中通過(guò)示例示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • nodejs配置express服務(wù)器運(yùn)行自動(dòng)打開瀏覽器詳細(xì)步驟

    nodejs配置express服務(wù)器運(yùn)行自動(dòng)打開瀏覽器詳細(xì)步驟

    在nodejs中使用express來(lái)搭建框架可以說(shuō)是非常的簡(jiǎn)單方便,下面這篇文章主要給大家介紹了關(guān)于nodejs配置express服務(wù)器運(yùn)行自動(dòng)打開瀏覽器的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • 詳解NodeJs項(xiàng)目 CentOs linux服務(wù)器線上部署

    詳解NodeJs項(xiàng)目 CentOs linux服務(wù)器線上部署

    這篇文章主要介紹了NodeJs項(xiàng)目 CentOs linux服務(wù)器線上部署,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09
  • node.js使用net模塊創(chuàng)建服務(wù)器和客戶端示例【基于TCP協(xié)議】

    node.js使用net模塊創(chuàng)建服務(wù)器和客戶端示例【基于TCP協(xié)議】

    這篇文章主要介紹了node.js使用net模塊創(chuàng)建服務(wù)器和客戶端,結(jié)合實(shí)例形式分析了node.js使用net模塊實(shí)現(xiàn)TCP客戶端與服務(wù)器端通信的相關(guān)操作技巧,需要的朋友可以參考下
    2020-02-02
  • nodejs與瀏覽器中全局對(duì)象區(qū)別點(diǎn)總結(jié)

    nodejs與瀏覽器中全局對(duì)象區(qū)別點(diǎn)總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于nodejs與瀏覽器中全局對(duì)象區(qū)別點(diǎn)總結(jié)內(nèi)容,對(duì)此有需要的朋友們可以學(xué)習(xí)下。
    2021-12-12
  • nvm管理node無(wú)法正常切換node版本問(wèn)題的解決方法

    nvm管理node無(wú)法正常切換node版本問(wèn)題的解決方法

    相信一定會(huì)有存在一些小伙伴 明明都已經(jīng)按著操作卸載node 和安裝nvm 了但是 依舊無(wú)法正常通過(guò)nvm管理node,本文將給大家介紹nvm管理node無(wú)法正常切換node版本問(wèn)題的解決方法,需要的朋友可以參考下
    2024-01-01
  • Node.js開發(fā)靜態(tài)資源服務(wù)器

    Node.js開發(fā)靜態(tài)資源服務(wù)器

    這篇文章主要為大家介紹了Node.js開發(fā)靜態(tài)資源服務(wù)器示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 預(yù)防NodeJS命令注入的方法詳解

    預(yù)防NodeJS命令注入的方法詳解

    Node.js和npm為前端生態(tài)中提供了統(tǒng)一的開發(fā)語(yǔ)言、強(qiáng)大的包管理和模塊生態(tài)系統(tǒng)、靈活的構(gòu)建工具和任務(wù)自動(dòng)化、以及豐富的前端框架和庫(kù)等等,本文給大家介紹了如何預(yù)防NodeJS命令注入,文中有詳細(xì)的代碼講解,需要的朋友可以參考下
    2023-12-12

最新評(píng)論