用Node寫(xiě)一條配置環(huán)境的指令
前言
工作中需要維護(hù)一個(gè)極老的項(xiàng)目,說(shuō)來(lái)話長(zhǎng)。在平時(shí)當(dāng)需要往項(xiàng)目里添加新的模塊時(shí),我需要手動(dòng)添加的東西太多了。由此希望通過(guò)編寫(xiě)一條node命令,可以讓我一鍵完成配置我需要配置的東西,比如:路由,控制器,less文件等。最后我只需要在生成的模板index.jsx中寫(xiě)我們可愛(ài)的模塊代碼就行了。

如何創(chuàng)建Node命令?
$ mkdir my-plugin $ cd my-plugin $ npm init --yes
配置package的腳本命令
{ "name": "12", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "bin": { "autocode": "bin/wflow.js" }, "dependencies": { "inquirer": "^7.0.0" }}
創(chuàng)建腳本js
#!/usr/bin/env node
console.log('hello word');
全局安裝node命令
npm install . -g

以上就是創(chuàng)建node指令的方法,下面介紹如何編寫(xiě)生成代碼腳本。
inquirer的使用
列舉用到的屬性,更多用法請(qǐng)自行學(xué)習(xí)。
1.input
const promptList = [{
type: 'input',
message: '設(shè)置一個(gè)用戶(hù)名:',
name: 'name',
default: "test_user" // 默認(rèn)值
},{
type: 'input',
message: '請(qǐng)輸入手機(jī)號(hào):',
name: 'phone',
validate: function(val) {
if(val.match(/\d{11}/g)) { // 校驗(yàn)位數(shù)
return val;
}
return "請(qǐng)輸入11位數(shù)字";
}
}];
inquirer.prompt(promptList).then(answers => {});
效果:

2.list
const promptList = [ { type: "list", message: "作者帥嗎:", name: "iscool", choices: ['帥','一般帥'], }, { type: "list", message: "帥得什么級(jí)別:", name: "client", choices: ['吳彥祖','彭于晏'], when:function(answers){ return answers.iscool === '帥' }, filter: function(val) { }},];
inquirer.prompt(promptList).then(answers => {});

when用于標(biāo)記此條詢(xún)問(wèn)何時(shí)出現(xiàn)!!!!
編寫(xiě)腳本添加模版
筆者要添加模版為以下:

以在page文件夾下添加index.jsx和index.module.less為例子:
function action(module_name, module_title) {
let url = 'https://raw.githubusercontent.com/justworkhard/Daily-Blog/master/2019-11/12/file/temp.jsx' fs.mkdir("app/page/" + module_name, () => { fs.writeFileSync("app/page/" + module_name + "/index.module.less", ""); https.get(url,(res)=>{ res.setEncoding('utf8'); let rawData = ''; res.on('data', (chunk) => { rawData += chunk; }); res.on('end', () => { fs.writeFileSync("app/page/" + module_name + "/index.jsx", rawData); }); }) });
}
先是在page文件夾下面添加module的文件夾,使用http將線上的index.jsx模版拉下來(lái)放到創(chuàng)建的module文件夾下面。
結(jié)語(yǔ)
總的來(lái)說(shuō),通過(guò)一條node指令完成了新建模塊所需的配置并不一定能節(jié)省多少時(shí)間,但卻非??幔皇菃??
鏈接:https://github.com/justworkhard/autocode.git
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- windows系統(tǒng)下簡(jiǎn)單nodejs安裝及環(huán)境配置
- nodejs開(kāi)發(fā)環(huán)境配置與使用
- Node.js的環(huán)境安裝配置(使用nvm方式)
- windows系統(tǒng)下node.js環(huán)境配置與安裝教程圖文詳解(詳細(xì)版)
- Node實(shí)戰(zhàn)之不同環(huán)境下配置文件使用教程
- 配置nodejs環(huán)境的方法
- 詳解Wondows下Node.js使用MongoDB的環(huán)境配置
- Windows下Node.js安裝及環(huán)境配置方法
- win系統(tǒng)下nodejs環(huán)境安裝配置
相關(guān)文章
Node.js多進(jìn)程的方法與參數(shù)實(shí)例說(shuō)明
這篇文章主要介紹了Node.js多進(jìn)程的方法與參數(shù)實(shí)例說(shuō)明,Node.js 是以單線程的模式運(yùn)行的,但它使用的是事件驅(qū)動(dòng)來(lái)處理并發(fā),這樣有助于我們?cè)诙嗪?nbsp;cpu 的系統(tǒng)上創(chuàng)建多個(gè)子進(jìn)程,從而提高性能,需要的朋友可以參考下2023-05-05
node文件資源管理器的解壓縮從零實(shí)現(xiàn)
這篇文章主要為大家介紹了node文件資源管理器的解壓縮從零實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
Node.js學(xué)習(xí)之內(nèi)置模塊fs用法示例
這篇文章主要介紹了Node.js學(xué)習(xí)之內(nèi)置模塊fs用法,結(jié)合實(shí)例形式詳細(xì)分析了node.js內(nèi)置模塊fs的基本功能、用法與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2020-01-01
node.js中的path.extname方法使用說(shuō)明
這篇文章主要介紹了node.js中的path.extname方法使用說(shuō)明,本文介紹了path.extname的方法說(shuō)明、語(yǔ)法、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下2014-12-12
使用Node.js寫(xiě)一個(gè)代碼生成器的方法步驟
這篇文章主要介紹了使用 Node.js 寫(xiě)一個(gè)代碼生成器,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
你應(yīng)該知道的幾類(lèi)npm依賴(lài)包管理詳解
npm 是node.js 里的包管理器,是一個(gè)命令行工具,下面這篇文章主要給大家介紹了關(guān)于你應(yīng)該知道的幾類(lèi)npm依賴(lài)包管理,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-10-10
Node.js學(xué)習(xí)之地址解析模塊URL的使用詳解
url模塊是nodejs里面的一個(gè)簡(jiǎn)單的模塊,下面這篇文章主要給大家介紹了關(guān)于Node.js學(xué)習(xí)之地址解析模塊URL使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-09-09

