npm link 安裝本地模塊,將本地模塊cli化


第三方學習地址

http://mp.weixin.qq.com/s?__biz=MzAxMTU0NTc4Nw==&mid=2661157390&idx=1&sn=6d96e54f1c4ecd5201a03fe76cc5f5a9&chksm=80d5d7dab7a25ecc5d1c47e81b32a4c88e8d70b1fcfd849777ca9605d8326339dff9e29e6e37&mpshare=1&scene=23&srcid=1218i1tXLnRQfPHvJmqSyRHR#rd

 

1)初始化模塊

確認模塊名稱

$ npm info xxx

如果沒有找到對應的包,說明你可以使用這個名字,然后在github建立倉庫,clone到本地即可

$ npm init -y

2)cli二進制模塊

Node.js分2種模塊

  • 普通模塊,供代碼調用

  • 二進制模塊,提供cli調用

大家都知道,生成器是cli工具,所以我們應該使用cli二進制模塊

手動修改package.json文件,增加 bin 配置

{  "name": "a",  "version": "1.0.0",  "description": "",  "main": "index.js",  "bin": {    "gen": "gen.js"  },  "scripts": {    "test": "echo \"Error: no test specified\" && exit 1"  },  "keywords": [],  "author": "",  "license": "ISC"
}

這里主要增加里一個bin的配置,bin里的gen為cli的具體命令,它的具體執行的文件gen.js,大家看到這是一個plain old object類型,所以可以配置多個命令的,各位可以按照自己的喜好來。

既然gen的執行文件是gen.js,我們當然需要創建創建它

$ touch gen.js

 如果是windwo 也可以選擇這樣寫:#! E:\nodejs\node

  #!/usr/bin/env node  var argv = process.argv;  var filePath = __dirname;  var currentPath = process.cwd();  console.log(argv)  console.log(filePath)  console.log(currentPath)

說明

  • argv是命令行的參數

  • filePath是當前文件的路徑,也就是以后安裝后文件的路徑,用於存放模板文件非常好

  • currentPath是當前shell上下文路徑,也就是生成器要生成文件的目標位置

至此,二進制模塊的代碼就寫完了,下面我們測一下

1)本地安裝此模塊

在package.json文件路徑下,執行

$ npm link

/Users/sang/.nvm/versions/node/v4.4.5/bin/gen -> /Users/sang/.nvm/versions/node/v4.4.5/lib/node_modules/a/gen.js/Users/sang/.nvm/versions/node/v4.4.5/lib/node_modules/a -> /Users/sang/workspace/github/i5ting/a

此時說明已經安裝成功了。

2)執行gen測試

$ gen

[ '/Users/sang/.nvm/versions/node/v4.4.5/bin/node',  '/Users/sang/.nvm/versions/node/v4.4.5/bin/gen' ]/Users/sang/workspace/github/i5ting/a/Users/sang/workspace/github/i5ting/a

可以換不同的目錄來測試一下,看看結果的不同,來體會上面3個變量的妙用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM