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