你的位置:首页 > 软件开发 > Java > 关于npm

关于npm

发布时间:2017-12-06 02:00:03
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:允许用户从NPM服务器下载别人编写的三方包到本地使用。允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。允许用户将自己编写的包或命令行程序上传到NPM服务 ...

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

  • 允许用户从NPM服务器下载别人编写的三方包到本地使用。

  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。

  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

举个栗子,当我们如下创建了一个工程:

- /home/user/workspace/node-echo/ # 工程目录 - bin/       # 存放命令行相关代码  node-echo + doc/       # 存放文档 - lib/       # 存放API相关代码  echo.js - node_modules/     # 存放三方包  + argv/ + tests/      # 存放测试用例 package.json     # 元数据文件 README.md      # 说明文件

 

下载三方包

  以argv为例

$ npm install argv...argv@0.0.2 node_modules\argv

  指定版本

$ npm install argv@0.0.1...argv@0.0.1 node_modules\argv

  可以在package.json中如下改写:

{ "dependencies": {  "argv": "0.0.2",  ..... } }

  在工程目录下就可以使用npm install命令批量安装三方包了。当以后node-echo也上传到了NPM服务器,别人下载这个包时,NPM会根据包中申明的三方包依赖自动下载进一步依赖的三方包。例如,使用npm install node-echo命令时,NPM会自动创建以下目录结构。

- project/ - node_modules/  - node-echo/   - node_modules/    + argv/   ... ...

  如此一来,用户只需关心自己直接使用的三方包,不需要自己去解决所有包的依赖关系。

安装命令行程序

  从NPM服务上下载安装一个命令行程序的方法与三方包类似。例如上例中的node-echo提供了命令行使用方式,只要node-echo自己配置好了相关的package.json字段,对于用户而言,只需要使用以下命令安装程序。

$ npm install node-echo -g

  参数中的-g表示全局安装,因此node-echo会默认安装到以下位置,并且NPM会自动创建好Linux系统下需要的软链文件或Windows系统下需要的.cmd文件。

- /usr/local/    # Linux系统下 - lib/node_modules/  + node-echo/  ... - bin/  node-echo  ... ...- %APPDATA%\npm\   # Windows系统下 - node_modules\  + node-echo\  ... node-echo.cmd ...

发布代码

  第一次使用NPM发布代码前需要注册一个账号。终端下运行npm adduser,之后按照提示做即可。账号搞定后,接着我们需要编辑package.json文件,加入NPM必需的字段。接着上边node-echo的例子,package.json里必要的字段如下。

{ "name": "node-echo",   # 包名,在NPM服务器上须要保持唯一 "version": "1.0.0",   # 当前版本号 "dependencies": {    # 三方包依赖,需要指定包名和版本号  "argv": "0.0.2"  }, "main": "./lib/echo.js",  # 入口模块位置 "bin" : {  "node-echo": "./bin/node-echo"  # 命令行程序名和主模块位置 }}

  之后,我们就可以在package.json所在目录下运行npm publish发布代码了。

版本号

  使用NPM下载和发布代码时都会接触到版本号。NPM使用语义版本号来管理代码,这里简单介绍一下。

  语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。

+ 如果只是修复bug,需要更新Z位。+ 如果是新增了功能,但是向下兼容,需要更新Y位。+ 如果有大变动,向下不兼容,需要更新X位。

 

原标题:关于npm

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录