npm初识
最近准备找一个现代的前端ui框架,看了如:
- 腾讯的QMUI
- 饿了么的Element-Ul
- bootstrape
- …
他们的资源都提供了同一种下载方式:npm。
以前我所接触的前端开发都是html+css+javascript。
需要展示树形结构就自己写个tree.js或者网上找一个js拿来引用。
这种方式在当下应该算是远古开发方式了。
初见漫天遍野的 npm,直觉告诉我,这是一个好东西,要学!
然而我内心有一些发虚,大致找了一些相关npm的教程,自己试着操作了一下,还是有些不明大意。
只大致了解npm是一个和前端相关的包管理工具。
疑问
npm是什么?
npm是由 Isaaz开发的运行在node.js上的软件包管理器,全称是 Node Package Manager。
因为前期和nodejs抱团取暖,nodejs内置了npm;后来nodejs火遍全球,npm也成为前端分享代码的标配。
试想:
你写了一个树形展示插件,该插件依赖jQuery 2.0+。
当你把这个插件分享给朋友时,朋友项目的jQuery是1.6版本的。
那他还得单独去可以jQuery官网下载JQuery 2.0+后才能正常使用。
一段时间后你修改了插件,并更新了jQuery依赖的版本,你的朋友会打你的(脾气不好的朋友)。
其他朋友需要这个插件的时候你也没有好的分享方式。
这只是一个小的插件就可能出现的问题,然后真正的项目中这类问题就回不断的复现。
- 去 jQuery 官网下载 jQuery
- 去 BootStrap 官网下载 BootStrap
- 其他依赖下载…
开发工作就是这些重复且没意义的事情挤压了我们耍朋友的时间
npm的存在肯定是为了解决一些问题的。
它使你能够轻松分享和借鉴包,并跟踪依赖项和版本。
而且它现在这么的流行,你能用到的包它都有!你怎么可以不会使用?
npm的主要组成
-
社区网站:查找包,不必在去各家官网了,网址:npmjs.com。
-
注册表:是一个巨大的数据库,保存了每个包的基本信息。
-
命令行:开发者与npm包打交道的工具。
npm怎么安装?
nodejs软件内置了npm。
要使用npm这个软件包管理工具,最常见的方法就是在电脑上安装nodejs。
相关的安装教程网上已经有很多很完善的了,这里我就不赘述了。
npm的命令怎么执行?
windows系统在安装nodejs后,快捷键win+r打开cmd,输入npm回车,有正常的提示说明,这时候你即可使用npm下载资源。
我来试试:
npm
可以看到我本机npm已经安装好了
npm i jquery
下载jquery,没有设置具体版本默认是最新版
查看下载结果
npm的原理是什么?
npm的大概思路:
- 准备个服务器搭建npm服务,作为中央代码仓库。
- 邀请知名开源作者将作品上传到中央仓库,并进行维护更新。
- 用户在社区搜索需要使用的插件,记录插件名称。
- 用户在package.json中配置需要的插件名称。
- 以后执行npm install,npm就会下载好相关插件包。
- 相关插件默认存储在node_modules目录下,可供用户使用。
常用命名
-
npm ls
查看当前目录下安装了哪些node包
-
npm config ls
可查看npm的安装信息以及默认的下载路径
-
npm install
安装nodejs的依赖包
-
npm install -g
将包安装到全局环境中
-
npm install --save
安装的同时,将信息写入package.json中
-
npm init
会引导你创建一个package.json文件,包括名称、版本、作者这些信息等
-
npm remove
移除
-
npm update
更新
-
npm root
查看当前包的安装路径
-
npm root -g
查看全局的包的安装路径
镜像
阿里在国内搭建了镜像服务器:http://npm.taobao.org