NPM小结
nodejs的出现,可以算是前端里程碑式的一个事件,它让前端攻城狮们摆脱了浏览器的束缚,踏上了一个更加宽广的舞台。前端的可能性,从此更加具有想象空间。
随着一系列基于nodes的应用/工具的出现,工作中与nodejs打交道的机会越来越多。无论在node应用的开发,还是使用中,包管理都扮演着一个很重要的作用。NPM(node package manager),作为node的包管理工具,极大地便利了我们的开发工作,很有必要了解一下。 NPM是什么NPM(node package manager),通常称为node包管理器。顾名思义,它的主要功能就是管理node包,包括:安装、卸载、更新、查看、搜索、发布等。 npm的背后,是基于couchdb的一个数据库,详细记录了每个包的信息,包括作者、版本、依赖、授权信息等。它的一个很重要的作用就是:将开发者从繁琐的包管理工作(版本、依赖等)中解放出来,更加专注于功能的开发。 npm官网: npm官方文档: 我们需要了解什么
npm包安装模式在具体介绍npm包的管理之前,我们首先得来了解一下npm包的两种安装模式。 本地安装 vs 全局安装(重要)node包的安装分两种:本地安装、全局安装。两者的区别如下,后面会通过简单例子说明
npm install pkg - 本地安装运行如下命令,就会在当前目录下安装
安装结束后,当前目录下回多出一个 node_modules/grunt-cli ├── ├── () └── (,) 简单说明一下:
npm install -g pkg- 全局安装上面已经安装了grunt-cli,然后你跑到其他目录下面运行如下命令
果断提示你grunt命令不存在,为什么呢?因为上面只是进行了本地安装,grunt命令只能在对应安装目录下使用。
如果为了使用grunt命令,每到一个目录下都得重新安装一次,那不抓狂才怪。肿么办呢? 很简单,采用全局安装就行了,很简单,加上参数
于是,在所有目录下都可以无压力使用 /usr/local/lib/node_modules/grunt-cli ├── ├── () └── (,) npm包管理npm的包管理命令是使用频率最高的,所以也是我们需要牢牢记住并熟练使用的。其实无非也就是几个动作:安装、卸载、更新、查看、搜索、发布等。 安装最新版本的grunt-cli
安装0.1.9版本的grunt-cli
通过package.json进行安装如果我们的项目依赖了很多package,一个一个地安装那将是个体力活。我们可以将项目依赖的包都在package.json这个文件里声明,然后一行命令搞定
其他package安装命令运行如下命令,列出所有
输出如下,有兴趣的童鞋可以了解下
卸载grunt-cli比如卸载grunt-cli
卸载0.1.9版本的grunt-cli
npm ls:查看安装了哪些包运行如下命令,就可以查看当前目录安装了哪些package
输出如下
输出如下,同样,如果是要查看package的全局安装信息,加上 npm ls pkg:查看特定package的信息运行如下命令,输出grunt-cli的信息
输出的信息比较有限,只有安装目录、版本,如下:
如果要查看更详细信息,可以通过
npm update pkg:package更新
npm search pgk:搜索输入如下命令
返回结果如下
npm发布这个命令我自己也还没实际用过,不误导大家,语法如下,也可参考官方对于package发布的说明:
NPM配置npm的配置工作主要是通过 设置proxy内网使用npm很头痛的一个问题就是代理,假设我们的代理是?
由于
查看proxy设置完,我们查看下当前代理设置
输出如下:
同样可如下简写:
删除proxy代理不需要用到了,那删了吧
查看所有配置
直接修改配置文件有时候觉得一条配置一条配置地修改有些麻烦,就直接进配置文件修改了
关于package.json这货在官网似乎没有详细的描述,其实就是包的描述信息啦。假设当我们下载了node应用,这个node应用依赖于A、B、C三个包,如果没有package.json,我们需要人肉安装这个三个包(如果对版本有特定要求就更悲剧了):
有了package.json,一行命令安装所有依赖。
package.json字段简介字段相当多,但最重要的的是下面几个
package版本在package.json里,你经常会在包名后看到类似"~0.1.0"这样的字符串,这就是包的版本啦。下面会列举最常见的版本声明形式,以及版本书写的要求: 常见版本声明形式a、"~1.2.3" 是神马意思呢,看下面领悟
b、"1.x.x"是什么意思呢,继续自行领悟
版本书写要求
写在后面内容只是简单地把最常见的命令,以及一些需要了解的内容列了出来。如要进一步了解,可参考官网说明。此外, 最关键的:如果文章内容有误,请指出!!! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |