NPM(node package manager)顾名思义:即node包管理器,那么node(更准确的说是node.js)又是什么鬼呢?套用官方的解释是“node.js是一个基于Chrome V8引擎的javascrip运行时。”有没有很懵逼?接下来我们就先弄清楚node.js的来龙去脉,然后再深入NPM的讲解。
许多年前,JavaScript被发明了,但这时JS语言仅用来编写网页,也只能在浏览器内运行,离开了浏览器什么也做不了。此时的JS受限于浏览器的性能,运行效率低下。多年后Google发布了V8内核的浏览器,其革命性的突破,使JS在其上的运行效率成倍提升,足以媲美其他脚本语言,但此时的JS仍然仅仅用来写写网页,也脱离不了浏览器,这时有个叫Ryan Dahl的哥们想,既然JS运行效率如此高效,为何不让其脱离浏览器环境,使其成为一门像样的脚本语言呢?说干就干,要使JS脱离浏览器环境,必然涉及到许多系统接口的实现,比如新建、打开、关闭、读写文件,创建进程等,得益于V8引擎的高效性以及这哥们深厚的编程功底,node.js于2009年和大家见面了,让原本鸡肋(仅用于操作DOM)的JS一跃成为多面手,在众多脚本语言中崭露头角,此时的JS不仅能写前端,还能写后端,不仅能写命令行软件,还能写窗口软件,可谓风光无限。
(大神Ryan Dahl)
随着JS的火爆,大量优秀的代码片段相继出现,想象一下,编程时使用这些现成的代码片段,不仅能加快开发速度,还能减少工作量。可是分享、搜索、重用这些海量的代码片段成为了一个问题,于是NPM在2010年应运而生,说到这,你可能已经清楚了npm的作用,没错,npm就是一个工具,方便你搜索、重用JS代码片段的工具,它包含一个代码仓库(用来存储JS代码片段),一个网页(用来搜索可用的代码片段...),一个命令行工具(打交道最多的就是它了,后面详解)。很多人认为npm只能用做后端开发,其实不是这样的,前端开发也大量的用到npm,由于这点,我认为npm改名为JSPM更为恰当。
就我们日常使用而言,了解以下NPM的用法就可以了,更高级的用法请查阅其官方文档:
一:NPM的安装及配置
NPM是用JS写的,运行于node.js之上,因此你需要先从node.js官网下载并安装node.js,由于NPM与node.js绑定在一起,因此你不需要单独安装NPM。安装好node.js之后你可以使用下面两个命令检查是否安装成功:
node -v(--version) //查看node.js的版本
npm -v(--version) //查看NPM的版本
由于node.js与NPM是由社区维护的两个独立项目,因此安装完最新的node.js并不意味着已经安装了最新的NPM,你可以从上面的命令查看NPM是否是最新的,若不是,可以使用以下命令更新NPM:
npm install npm@lastest -g //更新NPM至最新的稳定版本
npm install npm@next -g //更新NPM至将要发布的下一个版本
由于NPM官方仓库访问速度奇慢,可以使用以下命令更改为Taobao仓库:
npm config set registry https://registry.npm.taobao.org
npm --registry https://registry.npm.taobao.org install
二:使用NPM安装本地&全局包
所谓本地包就是将包安装在一个项目中,若是切换到另一个需重新安装;而全局包就是将包安装至系统,切换项目不需要重新安装可以直接引入使用。
npm install
npm install -g
npm install
--save
npm install
--save_dev
npm install
@5.1.1
三:使用NPM更新本地&全局包
npm update
npm update -g
四:使用NPM卸载本地&全局包
npm uninstall
npm uninstall -g
npm uninstall
--save
npm uninstall
--save_dev
五:其他
npm list //列出项目中已安装的所有的包
npm list -g //列出系统中全局安装的所有的包
npm outdated //查看过时的包
npm init //该命令将一个文件夹初始化为node.js模块,并创建package.json, 命令行提示你输入名称、版本、等字段。
npm config get prefix //查看全局安装路径
npm cache clean //删除安装包缓存
npm search
//查找验证某个包是否存在
六:更多
以上的知识点仅仅是JS世界的凤毛麟角,若要熟练使用JS,还需要:
1、掌握JS的语法,重点关注ES6;
2、了解client-side API;
3、查阅node.js官方文档,了解server-side API;
4、大致浏览一下NPM的官方文档,重点了解package.json相关知识点,以及包(package)与模块(module)的异同点。
5、了解并掌握常用模块的使用方法。
Don't be shy, just trying!
领取专属 10元无门槛券
私享最新 技术干货