欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Nodejs 發(fā)布自己的npm包并制作成命令行工具的實(shí)例講解

 更新時(shí)間:2018年05月15日 10:35:51   作者:簡(jiǎn)一_hz  
今天小編就為大家分享一篇Nodejs 發(fā)布自己的npm包并制作成命令行工具的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
<span style="font-family:Arial, Helvetica, sans-serif;background-color:rgb(255,255,255);">近日當(dāng)我在使用npm上已經(jīng)存在的一個(gè)包時(shí),發(fā)現(xiàn)它有bug;于是決定自己實(shí)現(xiàn)這個(gè)功能,自己寫一個(gè)npm包。</span> 

下面我記錄一下自己的實(shí)現(xiàn)過程。

1. npm init

選擇一個(gè)文件夾,然后用命令行cd進(jìn)去,然后執(zhí)行npm init,這時(shí)會(huì)生成一長(zhǎng)串表單,根據(jù)自己的實(shí)際情況填寫內(nèi)容

name:填寫你這個(gè)包的名字,默認(rèn)是你這個(gè)文件夾的名字。不過這里要著重說一下,最好先去npm上找一下有沒有同名的包。最好的測(cè)試方式就是,在命令行里面輸入npm install 你要取的名字,如果報(bào)錯(cuò),那么很好,npm上沒有跟你同名的包,你可以放心大膽地把包發(fā)布出去。如果成功下載下來(lái)了。。。那么很不幸,改名字吧。。。

version:你這個(gè)包的版本,默認(rèn)是1.0.0

description:其實(shí)我也不知道是什么,按回車就好了。。。,這個(gè)用一句話描述你的包是干嘛用的

entry point:入口文件,默認(rèn)是Index.js,你也可以自己填寫你自己的文件名

test command:測(cè)試命令,這個(gè)直接回車就好了,因?yàn)槟壳斑€不需要這個(gè)。

git repository:這個(gè)是git倉(cāng)庫(kù)地址,如果你的包是先放到github上或者其他git倉(cāng)庫(kù)里,這時(shí)候你的文件夾里面會(huì)存在一個(gè)隱藏的.git目錄,npm會(huì)讀到這個(gè)目錄作為這一項(xiàng)的默認(rèn)值。如果沒有的話,直接回車?yán)^續(xù)。

keyword:這個(gè)是一個(gè)重點(diǎn),這個(gè)關(guān)系到有多少人會(huì)搜到你的npm包。盡量使用貼切的關(guān)鍵字作為這個(gè)包的索引。我這個(gè)包嘛,第一是在express下工作的,然后又是一個(gè)插件plugin,然后又是一個(gè)注冊(cè)路由route用的,而這個(gè)路由又是基于文件目錄dir,所以很好就得出我的包的索引關(guān)鍵字。

author:寫你的賬號(hào)或者你的github賬號(hào)吧

license:這個(gè)直接回車,開源文件來(lái)著。。。

然后它就會(huì)問你Are you ok?

回車Ok!

然后我們回到我們的文件目錄里面去看一看,發(fā)現(xiàn)多出來(lái)一個(gè)package.json文件

然后,在目錄下新建一個(gè)index.js文件,或者你剛才修改了那個(gè)entry point的值,那么你這個(gè)文件名也跟著改為那個(gè)值。

我的npm工程目錄結(jié)構(gòu)就是這樣的,注意其中的bin文件夾是我為了制作命令行工具才生成的,后面會(huì)講到怎么生成命令行工具;當(dāng)然,如果那不想生成命令行工具,這個(gè)文件夾就不需要了。

因?yàn)槲野逊庋b好的代碼都扔在lib里面,所以,index.js里面也就一句話:

module.exports=require('./lib')

然后,最重要的,寫好README.md,一個(gè)給大家描述你的包的markdown文件,如果大家都不知道你的代碼是做什么的,會(huì)有人去下載你的代碼嗎?哦,對(duì)了,最好寫英文。

2. npm publish

寫完自己的npm包,測(cè)試運(yùn)行沒問題后就可以發(fā)布到npm上

首先得注冊(cè)個(gè)npm帳號(hào)

用npm命令登陸一下

然后,在你的目錄下使用npm publish

注意:一般情況下,一旦你要修改你已經(jīng)發(fā)布后的代碼,然后又要執(zhí)行發(fā)布操作,務(wù)必到package.json里面,把version改一下,比如從1.0.0改為1.0.1,然后在執(zhí)行npm publish,這樣就可以成功發(fā)布了。

3. 生成命令行工具

在使用 Nodejs 過程中,有很多包都支持全局安裝,提供一個(gè)命令,然后在命令行我們就可以完成一些任務(wù)。有時(shí)候我們也需要開發(fā)這樣的命令工具。在Node.js 中發(fā)現(xiàn)弄個(gè)命令行工具特別輕松。我使用的是commander包來(lái)生成命令行工具

$ npm install commander

然后cd到bin目錄下,新建一個(gè).js文件(名字自取),編寫代碼,在js文件頂部加上#!/usr/bin/env node

例如我的geAsar.js:

#!/usr/bin/env node
var asar = require('../lib/geAsar')
var program = require('commander');

program.version('v' + require('../package.json').version)
  .description('Manipulate asar archive files')

program.command('pack <dir> <output>')
  .alias('p')
  .description('create asar archive')
  .action(function (__dirpath, output) {
   asar.geAsar(__dirpath,output);
   console.log(output+"文件成功生成");
  })
program.parse(process.argv)

if (program.args.length === 0) {
 program.help()
}

然后還需在package.json中添加

"bin": { 
 "geAsar": "./bin/geAsar.js" 
 }, 

運(yùn)行 node bin/geAsar.js 會(huì)顯示當(dāng)前文件夾下的所以文件和文件夾名。這個(gè)玩意兒真的跑起來(lái)了.

全局運(yùn)行命令調(diào)試

install

如果在項(xiàng)目目錄下運(yùn)行沒有問題,可以將當(dāng)前目錄模塊安裝到全局,也可以采用此方法來(lái)更新你的命令行工具

sudo npm install . -g

link

或者目錄輸入 npm link 會(huì)自動(dòng)添加全局的 symbolic link ,然后就可以使用自己的命令了。 (我用的是這個(gè))

以上這篇Nodejs 發(fā)布自己的npm包并制作成命令行工具的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • node.js express捕獲全局異常的三種方法實(shí)例分析

    node.js express捕獲全局異常的三種方法實(shí)例分析

    這篇文章主要介紹了node.js express捕獲全局異常的三種方法,結(jié)合實(shí)例形式簡(jiǎn)單分析了node.js express捕獲全局異常的常見操作方法與使用注意事項(xiàng),需要的朋友可以參考下
    2019-12-12
  • node靜態(tài)服務(wù)器實(shí)現(xiàn)靜態(tài)讀取文件或文件夾

    node靜態(tài)服務(wù)器實(shí)現(xiàn)靜態(tài)讀取文件或文件夾

    這篇文章主要介紹了node靜態(tài)服務(wù)器實(shí)現(xiàn)靜態(tài)讀取文件或文件夾,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • node 版本切換的實(shí)現(xiàn)

    node 版本切換的實(shí)現(xiàn)

    這篇文章主要介紹了node 版本切換的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 談?wù)刵ode.js中的模塊系統(tǒng)

    談?wù)刵ode.js中的模塊系統(tǒng)

    這篇文章主要介紹了node.js中的模塊系統(tǒng),幫助大家更好的理解和學(xué)習(xí)node.js框架,感興趣的朋友可以了解下
    2020-09-09
  • Node.js制作簡(jiǎn)單聊天室

    Node.js制作簡(jiǎn)單聊天室

    這篇文章主要為大家詳細(xì)介紹了Node.js制作簡(jiǎn)單聊天室的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Node.js中讀取TXT文件內(nèi)容fs.readFile()用法

    Node.js中讀取TXT文件內(nèi)容fs.readFile()用法

    在本篇文章中我們給大家分享一下Node.js中讀取TXT文件內(nèi)容以及fs.readFile()的用法,需要的朋友們可以參考下。
    2018-10-10
  • windows實(shí)現(xiàn)npm和cnpm安裝步驟

    windows實(shí)現(xiàn)npm和cnpm安裝步驟

    這篇文章主要介紹了windows實(shí)現(xiàn)npm和cnpm安裝步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • node故障定位頂級(jí)技巧動(dòng)態(tài)追蹤Dynamic?Trace詳解

    node故障定位頂級(jí)技巧動(dòng)態(tài)追蹤Dynamic?Trace詳解

    這篇文章主要為大家介紹了node故障定位頂級(jí)技巧動(dòng)態(tài)追蹤Dynamic?Trace詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • autojs的Node.js正確退出腳本示例

    autojs的Node.js正確退出腳本示例

    這篇文章主要為大家介紹了autojs的Node.js正確退出腳本示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Node.js中的npm單獨(dú)與批量升級(jí)依賴包的方式超詳細(xì)講解

    Node.js中的npm單獨(dú)與批量升級(jí)依賴包的方式超詳細(xì)講解

    npm outdated僅檢查所有已安裝包的依賴關(guān)系,并將當(dāng)前版本遠(yuǎn)程倉(cāng)庫(kù)中的最新版本進(jìn)行對(duì)比,不會(huì)升級(jí),這篇文章主要介紹了Node.js中的npm單獨(dú)與批量升級(jí)依賴包的方式超詳細(xì)講解,需要的朋友可以參考下
    2024-02-02

最新評(píng)論