1、commander
2、chalk
3、inquirer
npn:
npm發布自己的包方法需要乙個package
.json,可以在命令列中執行**幫助建立package
.json檔案
例如:npm init / npm init --yes(預設同意會直接使用你的檔名當專案名稱)
commander
// console.log( process.ar** );
//const commander = require('commander');
// 設定當前命令的版本
'v1.0.0', '-v, --version');
// 設定其他option,--name 後面的 [val] 是當前這個選項的引數值
// 表示可選,<>表示必填
// 如果第三個引數是乙個函式的話,那麼該函式會接受來自使用者輸入的值
// 並返回乙個值作為 最後 這個選項實際的值
// commander.option('-n, --name [val]', '設定名稱', '');
// commander.option('-n, --name [val]', '設定名稱', function(val) );
'create');
// 設定命令的動作
=> );
// 解析來自process.ar**上的資料,會自動幫助我們新增乙個 -h 的解析
process.ar** );
// console.log( commander.name );
chalk:文字的修飾:斜體,加粗重windows下(cmd)下支援不是特別的好
/**
* ls
* 輸出當前執行命令所在的目錄下的檔案和資料夾
* ls -p d:\
* 我們還可以指定要顯示的目錄
// 載入commander模組
const commander = require('commander');
// 載入fs模組
const fs = require('fs');
// 美化
const chalk = require('chalk');
// 文字的修飾:斜體,加粗重windows下(cmd)下支援不是特別的好
// console.log(chalk.italic('hello world!') + ' miaov');
// console.log(chalk.bold.red.bggreen('hello world!') + ' miaov');
// process.exit();
// 設定當前命令工具的版本
commander.version('v1.0.0', '-v, --version');
// 設定命令選項
commander.option('-p, --path [path]', '設定要顯示的目錄', __dirname);
= undefined;
// console.log(commander.path);
// process.exit();
// 以列表的形式顯示,如果選項不接收使用者輸入的值,那麼這個選項將以boolean的形式提供給後面命令使用
commander.option('-l, --list', '以列表的形式顯示');
// 實現命令的具體邏輯
commander.action( () => \r\n`) : `[檔案] $\r\n`;
// return `[$] $\r\n`;
} ).join('');
console.log(output);
} else
} catch(e)
} );
commander.parse( process.ar** );
*/
inquirer:與使用者進行命令列的互動
const inquirer =
require
('inquirer');
/* 提問使用者,與使用者進行命令列的互動
// prompt陣列中存放乙個指定格式的物件,我們稱為question物件
inquirer.prompt([
return true;
},// 對使用者輸入的資料或選擇的資料進行過濾
filter(val) },,
,// ,,]
}]).then(answers=>)
electronelectron哎來賺(npm run dev)
npm init
/* console.log('hello');
// console.log(__dirname);
// const electron = require('electron');
/** * 事件
* 屬性
* 方法
*/// event.emmiter
// console.log('ok');
// settimeout(() => , 2000)
let bw1 = new browserwindow();
let bw2 = new browserwindow();
// 與視窗有關的瀏覽器中的內容都是通過下面的屬性類操作的
// bw1.webcontents;
// bw1.webcontents.opendevtools();
// console.log(bw1.id);
// console.log(bw2.id);
// 載入指定的頁面到視窗中,支援絕對路徑,但是推薦使用相對
// 路徑,而且路徑在解析的時候會被處理,相對路徑預設指向
// 應用程式的根目錄
bw1.loadfile('./layout/index.html');
// 支援載入遠端檔案,支援http協議,也支援file協議
// bw1.loadurl('');
});
menu選單類
let bw1 = new browserwindow();
// let bw2 = new browserwindow();
// 建立選單物件
let m1 = new menu();
// 建立選單項
let mi1 = new menuitem();
// 把選單項新增到指定的選單物件中
// 建立選單項
let mi2 = new menuitem(,,,
,,,,
,// }]
});// 指定該選單顯示的主體(具體哪個視窗、右鍵-上下文)
/*** 選單位置:
* 1. 應用程式的頂層選單
* 2. 上下文選單
*/// 把選單新增到應用程式視窗最頂層
menu.
( m1 );}
)主程序主動傳送訊息到渲染程序
// 主程序
let username = 'zmouse';
global.username = username;
let datas =
const win = new browserwindow();
win.webcontents.opendevtools();
win.loadfile('./layout/index.html');
// 監聽渲染程序 ipcrenderer 傳送的訊息
ipcmain.on('getdata', function(e, key) );
// 主程序主動傳送訊息到渲染程序
settimeout(() => , 2000);
const win2 = new browserwindow();
win2.webcontents.opendevtools();
win2.loadfile('./layout/index2.html');*/
/*
按鈕按鈕2
});
nodejs 學習記錄(三) mime模組學習
引至 mime 乙個全面的,規整mime型別的模組。版本二是版本一的乙個轉折點,具體的變更如下 es6相容但是要求node的版本要大於6,這可以算得上是乙個巨大的改變,除此之外,有些對應的介面方法也做了些修改,如 lookup 被gettype 替換,extension 被getextension ...
學習記錄2
pv操作同步過程 對訊號燈狀態進行改變,p呼叫一次 1,v呼叫一次 1。p操作 p s 是乙個原語操作,p操作執行 s 若s為負數,呼叫p s 的程序被阻塞,放到等待佇列q中。p s v操作 v s 剛好與p s 操作相反,v操作執行 s 若s為大於0,繼續執行 s 0,從訊號燈等待佇列移出乙個程序...
學習記錄2
1 如果電腦螢幕顯示異常 安裝360顯示卡驅動 3 win10虛擬機器未聯網,橋接模式沒有作用,勾選nta模式,用於共享主機的ip位址並重新啟動電腦 4 安裝cad如果安裝不成功,安裝路徑資料夾名稱可以修改為英文 5 虛擬機器安裝win10非常卡,將虛擬機器執行記憶體調大,由1gb調整為4gb 6 ...