加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

详解NodeJS和命令行程序

发布时间:2019-04-19 18:38:12 所属栏目:教程 来源:刘观宇
导读:源起 植根于Unix体系情形下的措施,许多都把贯彻Unix体系计划的哲学作为一种追求。Unix体系管道机制的发现者Douglas McIlroy把Unix哲学总结为三点: 专注做一件事,并做到极致。 措施协同事变。 面向通用接口,如文本数据流。 跟着Unix/Linux体系在处事器

n和nvm城市在初次行使某个版本时将此版本的NodeJS下载至当地,差异的是:n将实行用新版本取代体系路径中,要害路径如bin、lib、include、share的包。nvm则是保存每一个版本的副本,并将NodeJS的体系路径指向.nvm维护的沙箱地点。

从处理赏罚上,nvm显得更轻量和高效,可是必要修改体系的PATH,这一步nvm剧本会自动完成。n则无需入侵体系路径,但每次修改时辰均需操纵体系路径,且此时最好行使sudo n运行,停止因权限不敷,拒绝向体系路径复制。

因为nvm会修改PATH地点,以是假犹如时默认安装nvm和n,n会运转不正常。一种方案是停止同时安装,其它可以手动修改PATH,使默认的NodeJS路径先于nvm的体系路径,如修改PATH片断为:

  1. /usr/local/bin:/Users/leon/.nvm/versions/node/v10.6.0/bin: 

2. 执行帮助 nodemon/npx

nodemon是一个执行器,意义在于,假如版本变革可能措施变革,无需从头启动。这在开拓时辰很是有效。

nodemon还可以指定运行的端口,如:

  1. nodemon ./server.js localhost 8080 

除了节制NodeJS包之外,nodemon还可以节制非NodeJS剧本,好比:nodemon --exec "python -v" ./app.py,将监控app.py的内容,并在最开始以及产生变革时辰,挪用python -v举办理会。虽然,假如你的app.py指定了shebang,也可以不需指定理会函数。

nodemon有许多机动的设置,通过这些设置,可以实现情形变量配置、耽误启动、呼吁执行、监控定制扩展名、优雅重启、变乱监听等成果。做法是在必要这些设置的目次下,提供相干的设置nodemon.json,也可以在package.json中通过nodemonConfig字段指明。

在这里4 有官方提供的一份设置文件的样例,供读者参考。

再来说说npx。什么是npx呢?简朴说,就是找到并运行一个包,而且“用完即走”。

这里有两层意思:

  • 找到。从那边找:先是当前的依靠,然后是PATH,还找不到就到网上找来安装。
  • 用完即走。纵然从网上安装的,运行完就会删掉,不会留下运行的包。 读者可以试着运行下:npx github:piuccio/cowsay "awesome npx"体验下。

这其实是居家观光、开拓调试的利器。好比我要在当前目次下开一个http处事,可以直接运行:npx http-server。

详解NodeJS和呼吁行措施

之后就可以直接在赏识器会见这个地点举办调试了。

其它,假如你必要姑且用一个老版本的node来运行某个剧本,也可以祭出npx,这个node会被姑且安装、姑且行使、用完即走。

  1. npx -p node@6 npm init 

3. 切换NodeJS注册表 nrm/yrm

nrm/yrm维护了一个列表,包罗npm主站和其他镜像。可以行使nrm/yrm use 快速切换,以到达最快的下载速率。nrm维护的是npm的注册表,yrm维护的是yarn注册表。

详解NodeJS和呼吁行措施

帮助编写NodeJS包

除了直接用大神们写好的呼吁之外,我们也可以凭证本身的需求定制本身必要的NodeJS包。我们知道,呼吁行着实也是一种人机交互,因此,交互上有许多可以小心的结果。编写者只需将包倒入就可以行使这些交互结果。这里笔者给各人保举几个包。

1. 呼吁行参数读取 commander

呼吁行的一个特点就是按照参数的差异调解运行计策。然而处理赏罚呼吁行输入以及验证是一个很是繁琐的工作。为此,TJ大神曾经创建了commander包。最基本的用法如下:

  1. var program = require('commander'); 
  2.  
  3. program 
  4.   .version('0.1.0') 
  5.   .option('-p, --peppers', 'Add peppers') 
  6.   .option('-P, --pineapple', 'Add pineapple') 
  7.   .option('-b, --bbq-sauce', 'Add bbq sauce') 
  8.   .option('-c, --cheese [type]', 'Add the specified type of cheese [marble]', 'marble') 
  9.   .parse(process.argv); 
  10.  
  11. console.log('you ordered a pizza with:'); 
  12. if (program.peppers) console.log(' - peppers'); 
  13. if (program.pineapple) console.log(' - pineapple'); 
  14. if (program.bbqSauce) console.log(' - bbq'); 
  15. console.log(' - %s cheese', program.cheese); 

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读