关于npm
2018-06-24 00:58:31来源:未知 阅读 ()
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位。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:前端工程化思考与实践(二)
下一篇:求水仙花数
- 关于jQuery UI 使用心得及技巧 2020-03-29
- javascript 中关于array的常用方法详解 2020-03-16
- 关于JS array的数组 2020-03-08
- Javascript排序算法的介绍 2019-10-29
- 加载js文件的小脚本 2019-10-25
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash