npm模块管理器

原创 2015年08月16日 16:25:25

一、npm简介

npm有两层含义。一层含义是Node.js的开放式模块登记和管理系统,网址为http://npmjs.org。另一层含义是Node.js默认的模块管理器,是一个命令行下的软件,用来安装和管理node模块。
npm不需要单独安装。在安装node的时候,会连带一起安装npm。但是,node附带的npm可能不是最新版本,最好用下面的命令,更新到最新版本。
npm采用”语义版本“管理软件包。所谓语义版本,就是指版本号为a.b.c的形式,其中a是大版本号,b是小版本号,c是补丁号。

# 将npm更新到最新版本
$ npm install npm@latest -g
$ npm install npm@0.1.1 -g
# 查看npm的版本和配置
$ npm -v
# npm命令列表
$ npm help
# 各个命令的简单用法
$ npm -l
# 配置信息
$ npm config list -l

二、npm info

# 查看每个模块的具体信息
$ npm info underscore
$ npm info underscore description
$ npm info underscore homepage
$ npm info underscore version
# npm仓库搜索某个模块
$ npm search <搜索词>

四、npm list

# 列出当前目录安装的所有模块
$ npm list
# 列出全局安装的所有模块
$ npm -global list
# npm list命令也可以列出单个模块。
$ npm list underscore

五、npm install

1. 模块可以“全局安装”,也可以“本地安装”。

  • “全局安装”指的是将一个模块直接下载到Node的安装目录中,各个项目都可以调用。
  • “本地安装”指的是将一个模块下载到当前目录的node_modules子目录,然后只有在当前目录和它的子目录之中,才能调用这个模块。
# “本地安装”某个模块
$ npm install <package name>
# npm也支持直接输入github地址
$ npm install git://github.com/package/path.git
$ npm install git://github.com/package/path.git#0.1.0
# 使用global参数,可以“全局安装”某个模块
$ sudo npm install -global [package name]

2. install命令可以指定所安装的模块属于哪一种性质的依赖关系,即出现在packages.json文件的哪一项中,可以通过npm init自动生成package.json。

  • –save:模块名将被添加到dependencies,可以简化为参数-S。
  • –save-dev: 模块名将被添加到devDependencies,可以简化为参数-D。

npm install默认会安装dependencies字段和devDependencies字段中的所有模块,如果使用production参数,可以只安装dependencies字段的模块。

$ npm install --production
# 或者
$ NODE_ENV=production npm install

六、npm update,npm uninstall

# 升级本地安装的模块
npm update -global [package name]
# 删除本地安装的模块
sudo npm uninstall [package name] -global

七、npm run

npm不经可以用于模块管理,还可以用于执行脚本。package.json文件有一个scripts字段,可以用于指定脚本命令,供npm直接调用。

"scripts": {
    "lint": "jshint **.js",
    "test": "mocha test/"
  }
# 列出scripts属性下的所有命令
npm run
# 执行lint脚本
npm run lint

npm run会创建一个shell,执行指定的命令,并将node_modules/.bin加入PATH变量,这意味着本地模块可以直接运行。也就是说,npm run lint直接运行jshint .js即可,而不用./node_modules/.bin/jshint .js。
注意:npm内置了两个命令简写,npm test等同于执行npm run test,npm start等同于执行npm run start。

八、默认脚本

npm在执行某些命令时,会执行一些默认脚本(前提是这些脚本已经设置了)。

  • prepublish:发布一个模块前执行。
  • publish, postpublish:发布一个模块后执行。
  • preinstall:安装一个模块前执行。
  • install, postinstall:安装一个模块后执行。
  • preuninstall, uninstall:卸载一个模块前执行。
  • postuninstall:卸载一个模块后执行。
  • preversion, version:更改模块版本前执行。
  • postversion:更改模块版本后执行。
  • pretest, test, posttest:运行npm test命令时执行。
  • prestop, stop, poststop:运行npm stop命令时执行。

prestart, start, poststart:运行npm start命令时执行。
prerestart, restart, postrestart:运行npm restart命令时执行。如果没有设置restart脚本,则依次执行stop和start脚本。
npm run为每条命令提供了pre和post两个钩子(hook)。以npm run lint为例,执行这条命令之前,npm会先查看有没有定义prelint和postlint两个钩子,如果有的话,就会先执行npm run prelint,然后执行npm run lint,最后执行npm run postlint。
如果执行过程出错,就不会执行排在后面的脚本,即如果prelint脚本执行出错,就不会接着执行lint和postlint脚本。
另外,不能在pre脚本之前再加pre,即preprelint脚本不起作用。

九、内部变量

scripts字段可以使用一些内部变量,主要是package.json的各种字段。
比如,package.json的内容是{“name”:”foo”, “version”:”1.2.5”},那么变量npm_package_name的值是foo,变量npm_package_version的值是1.2.5。

{
  "scripts":{
    "bundle": "mkdir -p build/$npm_package_version/"
  }
}

十、npm publish

(1)设定个人信息

$ npm set init.author.name "ligang"
$ npm set init.author.email "ligang_WEB@163.com"
$ npm set init.author.url "https://github.com/381510688/my-git"

(2)向npm系统申请用户名

$ npm adduser

(3)登录

$ npm login

(4)<非第一次>要发布新版本的时候,更新软件的版本

$ npm version <update_type> -m "<message>"
npm version patch增加一位补丁号(比如 1.1.1 -> 1.1.2npm version minor增加一位小版本号(比如 1.1.1 -> 1.2.0npm version major增加一位大版本号(比如 1.1.1 -> 2.0.0)。

(5)发布

$ npm publish

[转载请标明出处:http://blog.csdn.net/ligang2585116]

版权声明:本文为博主原创文章,未经博主允许不得转载。转载请标明出处:http://blog.csdn.net/ligang2585116!

利用npm 安装删除模块

npm安装模块 【npm install xxx】利用 npm 安装xxx模块到当前命令行所在目录; 【npm install -g xxx】利用npm安装全局模块xxx; 本地安装时将模块写入pa...
  • yihanzhi
  • yihanzhi
  • 2017年07月21日 16:53
  • 24166

npm全局模块卸载及默认安装目录修改

卸载全局安装模块  npm uninstall -g 卸载后,你可以到 /node_modules/ 目录下查看包是否还存在,或者使用以下命令查看:npm ls npm的指令还是...
  • baidu_28479651
  • baidu_28479651
  • 2016年12月21日 20:44
  • 27490

利用npm 安装删除模块

npm安装模块 【npm install xxx】利用 npm 安装xxx模块到当前命令行所在目录;【npm install -g xxx】利用npm安装全局模块xxx; 本地安装时将模块...
  • qq_35624642
  • qq_35624642
  • 2017年10月10日 11:25
  • 381

npm清除未被使用的模块命令

我们使用npm list 的过程中,可能会出现这样的一些问题,就是有些模块未被项目引入,但是我们还是安装了这些模块,这时就会出现报错的情况。 这时我们只需要简单的一行命令即可解决!npm prune...
  • helencoder
  • helencoder
  • 2016年06月03日 09:28
  • 5032

npm的常用命令(更新依赖、删除依赖等)

参考:http://blog.csdn.net/haidaochen/article/details/8546796 常用命令:http://blog.csdn.net/haidaochen/ar...
  • fsz9065
  • fsz9065
  • 2017年04月15日 14:37
  • 6970

npm install production 参数 devDependencies

npm install --production  添加了production  参数后将仅仅  安装  package.json 中dependencies 里面的包,不会安装devDepen...
  • ISaiSai
  • ISaiSai
  • 2016年05月23日 17:21
  • 6869

npm 查看模块全部版本

npm 查看模块全部版本npm 查看模块全部版本:(jquery)npm view jquery versions安装指定版本: (jquery)npm install jquery@1.7.2...
  • weixin_36401046
  • weixin_36401046
  • 2017年10月26日 14:35
  • 1350

npm更新模块同步到package.js中

模块检查更新在用vue-cli生成工程后,一段时间很多模块都有更新,如何把工程中的模块都更新到最新的呢。 首先我们先通过命令查看下需要更新的版本:npm outdatednpm outdated 会...
  • wkl305268748
  • wkl305268748
  • 2017年08月03日 18:11
  • 5412

npm常用命令

npm install 安装nodejs的依赖包 例如npm install express 就会默认安装express的最新版本,也可以通过在后面加版本号的方式安装指定版本,如npm instal...
  • haidaochen
  • haidaochen
  • 2013年01月27日 19:40
  • 168702

npm 使用过程中报错问题-及npm使用

1.以下为报错具体详情;node 8.1.2 版本问题:其他空间安装成功但是安装webpack 总是报以下错误:解决办法为重新安装node 2. npm模块管理器 ...
  • u013022210
  • u013022210
  • 2017年08月31日 10:23
  • 1248
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:npm模块管理器
举报原因:
原因补充:

(最多只允许输入30个字)