亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

快速寫個(gè)node命令行工具

QLQ / 1870人閱讀

摘要:一快速入手背景好多包都提供命令行工具。二與命令行工具先初始化個(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-demo

2.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

相關(guān)文章

  • 用webpack寫個(gè)現(xiàn)代的JavaScript包

    摘要:這里我們可以嘗試運(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)建...

    yhaolpz 評(píng)論0 收藏0
  • 快速構(gòu)建一個(gè)測試web項(xiàng)目

    摘要:用初始化一下,就會(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里面又沒有什...

    baukh789 評(píng)論0 收藏0
  • 分分鐘教你用node.js寫個(gè)爬蟲

    摘要:爬蟲介紹二爬蟲的分類通用網(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和爬蟲方面...

    fanux 評(píng)論0 收藏0
  • 從0開始的Vue全棧項(xiàng)目(仿網(wǎng)易云音樂App)

    摘要:轉(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)?..

    YFan 評(píng)論0 收藏0
  • 從0開始的Vue全棧項(xiàng)目(仿網(wǎng)易云音樂App)

    摘要:轉(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)?..

    ziwenxie 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<