摘要:一快速入手背景好多包都提供命令行工具。二與命令行工具先初始化個(gè)項(xiàng)目配置創(chuàng)建文件,把路徑添加到中這些固定的工作可以由幫我們完成。參考用創(chuàng)建命令行工具配置
一、快速入手 1.1 背景:
好多nodejs包都提供命令行工具。咱也來學(xué)學(xué)吧。
1.2 刀耕火種時(shí)代:環(huán)境:
win32_X86
nodejs: v5.9.1
npm: 3.7.3
首先創(chuàng)建個(gè)bat文件(cli-demo.bat),bat文件中調(diào)用node命令執(zhí)行相應(yīng)的js文件(index.js):
index.js內(nèi)容:
"use strict"; function add(args) { var sum = 0; args.forEach(function(number){ var num = +number; if(!isNaN(num)){ sum += +num; } }) return sum; } var args = process.argv.slice(2); // 處理參數(shù) var sum = add(args); console.log(sum);
cli-demo.bat內(nèi)容(index.js相同目錄):
@ECHO OFF SETLOCAL SET "NODE_EXE=%~dp0 ode.exe" IF NOT EXIST "%NODE_EXE%" ( SET "NODE_EXE=node" :: ) :: 執(zhí)行指定的js,并傳入?yún)?shù) "%NODE_EXE%" "index.js" %*
然后把bat文件路徑添加到PATH環(huán)境變量中。
在index.js父目錄下打開cmd,并執(zhí)行:
創(chuàng)建bat文件,把bat路徑添加到PATH中過程是復(fù)雜了點(diǎn),還好npm可以幫我們做這些事。
二、npm與命令行工具先初始化個(gè)npm項(xiàng)目
2.1 package.json-bin配置【創(chuàng)建bat文件,把bat路徑添加到PATH中】這些固定的工作可以由npm幫我們完成。package.json中有個(gè)bin字段配置:
bin: { "commandName1": "path/to/executableFile1", // 路徑相對(duì)于package.json的目錄 "commandName2": "path/to/executableFile2", }
可執(zhí)行文件可以是js文件或者無擴(kuò)展名的文本文件,并且文件開頭第一行是"#!/usr/bin/env node"。在安裝包時(shí)npm就會(huì)根據(jù)bin配置生成對(duì)應(yīng)的腳本(bat 或者 shell)。如果可執(zhí)行文件的第一行不是"#!/usr/bin/env node",則生成的腳本文件只是簡單的指向bin配置的可執(zhí)行文件。
2.2 舉例:Step1:創(chuàng)建package.json文件,并配置bin字段。
package.json:
"bin":{ "cli-demo": "./bin/cli-demo" }
Step2:在和package.json相同的目錄下創(chuàng)建bin目錄,在bin目錄中添加cli-demo文本文件。
./bin/cli-demo:
#!/usr/bin/env node console.log("heheh");
Step3:發(fā)布包(前提在控制臺(tái)登錄npm賬戶)
npm login npm publish
如果沒有報(bào)錯(cuò)提示的化,那就說明發(fā)布包成功了,接下來就可以被其他人引用了。
Step4:安裝包
npm i -g cli-demo
查看下安裝目錄中生成的腳本文件:cli-demo.bat
@IF EXIST "%~dp0 ode.exe" ( "%~dp0 ode.exe" "%~dp0 ode_modulescli-demoincli-demo" %* ) ELSE ( @SETLOCAL @SET PATHEXT=%PATHEXT:;.JS;=;% node "%~dp0 ode_modulescli-demoincli-demo" %* )
文件內(nèi)容就是調(diào)用node執(zhí)行bin配置的文件。
Step5:執(zhí)行命令
cli-demo2.3 npm干了什么
A:根據(jù)bin字段配置,生成腳本文件(bat for window, shell for unix)。
腳本名稱:等于bin字段的屬性名字 腳本內(nèi)容:調(diào)用node名字執(zhí)行bin字段對(duì)象屬性值指定的文件
B:把生產(chǎn)的腳本文件放在指定目錄中
全局安裝:prefix/ 本地安裝:./node_module/.bin/三、擴(kuò)展
一般一個(gè)命令由三部分構(gòu)成:命令名稱 選項(xiàng) 參數(shù)。
命名名稱:指定運(yùn)行的命名
選項(xiàng):修改命令的操作行為
參數(shù):傳給命令運(yùn)行的參數(shù)
處理選項(xiàng)和參數(shù)可以使用其他庫,如CommandJS。
用Node.js創(chuàng)建命令行工具
npm-bin配置
Command-line utilities with Node.js
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/90074.html
摘要:這里我們可以嘗試運(yùn)行一下命令嘗試能否構(gòu)建成功,成功的情況下在目錄下會(huì)生成的文件。在添加調(diào)試代碼打開調(diào)試面板在下拉選項(xiàng)中選擇添加配置或者直接創(chuàng)建并打開文件使用了解相關(guān)屬性。 webpack 作為目前主流的構(gòu)建工具,其較快的版本迭代和復(fù)雜的配置方式,使得每次開發(fā)前不得不規(guī)劃相當(dāng)部分時(shí)間來調(diào)試。這里將記錄整個(gè)環(huán)境的搭建過程,為新手提供基礎(chǔ)思路。 就像我在開發(fā)vue-sitemap時(shí)一樣,構(gòu)建...
摘要:用初始化一下,就會(huì)為你創(chuàng)建一個(gè),用來管理你的依賴包,命令配置。還是不清除的可以去我的上看一下,很水的一個(gè)項(xiàng)目,別噴我。 單純的運(yùn)行一段js邏輯的話就不需要構(gòu)建測試項(xiàng)目,直接寫個(gè)js,node命令行運(yùn)行一下就可以了,但是往往閱讀一段他人的源碼想要自己測試一下就沒辦法這樣子,因?yàn)閯e人會(huì)依賴模塊,會(huì)操作瀏覽器dom等等,所以自己寫一個(gè)測試小demo有時(shí)候就很有用處。 nodejs里面又沒有什...
摘要:爬蟲介紹二爬蟲的分類通用網(wǎng)絡(luò)爬蟲全網(wǎng)爬蟲爬行對(duì)象從一些種子擴(kuò)充到整個(gè),主要為門戶站點(diǎn)搜索引擎和大型服務(wù)提供商采集數(shù)據(jù)。 分分鐘教你用node.js寫個(gè)爬蟲 寫在前面 十分感謝大家的點(diǎn)贊和關(guān)注。其實(shí),這是我第一次在segmentfault上寫文章。因?yàn)槲乙彩乔岸螘r(shí)間偶然之間才開始了解和學(xué)習(xí)爬蟲,而且學(xué)習(xí)node的時(shí)間也不是很長。雖然用node做過一些后端的項(xiàng)目,但其實(shí)在node和爬蟲方面...
摘要:轉(zhuǎn)行前端一年多,之前一直忙于寫業(yè)務(wù)代碼,剛好近期不忙,就想寫一個(gè)完全屬于自己的項(xiàng)目。本項(xiàng)目因?yàn)闀r(shí)間關(guān)系暫時(shí)只做了部分功能,但是有空會(huì)繼續(xù)更新的。項(xiàng)目未完成的部分后續(xù)會(huì)逐漸完成。 轉(zhuǎn)行前端一年多,之前一直忙于寫業(yè)務(wù)代碼,剛好近期不忙,就想寫一個(gè)完全屬于自己的項(xiàng)目。原本打算用react來做的,但是估計(jì)邊翻api邊寫可能會(huì)花特別長的時(shí)間,所以打算這個(gè)項(xiàng)目完成后寫個(gè)react的項(xiàng)目。本項(xiàng)目因?yàn)?..
摘要:轉(zhuǎn)行前端一年多,之前一直忙于寫業(yè)務(wù)代碼,剛好近期不忙,就想寫一個(gè)完全屬于自己的項(xiàng)目。本項(xiàng)目因?yàn)闀r(shí)間關(guān)系暫時(shí)只做了部分功能,但是有空會(huì)繼續(xù)更新的。項(xiàng)目未完成的部分后續(xù)會(huì)逐漸完成。 轉(zhuǎn)行前端一年多,之前一直忙于寫業(yè)務(wù)代碼,剛好近期不忙,就想寫一個(gè)完全屬于自己的項(xiàng)目。原本打算用react來做的,但是估計(jì)邊翻api邊寫可能會(huì)花特別長的時(shí)間,所以打算這個(gè)項(xiàng)目完成后寫個(gè)react的項(xiàng)目。本項(xiàng)目因?yàn)?..
閱讀 1130·2021-11-24 09:39
閱讀 1433·2021-11-18 13:18
閱讀 2583·2021-11-15 11:38
閱讀 1897·2021-09-26 09:47
閱讀 1715·2021-09-22 15:09
閱讀 1694·2021-09-03 10:29
閱讀 1594·2019-08-29 17:28
閱讀 3018·2019-08-29 16:30