npm 使用小结
2017-09-01 10:00
411 查看
本文内容基于 npm 4.0.5
概述
npm (node package manager),即 node 包管理器。这里的 node 包就是指各种 javascript 库。
npm是随同
Node.js一起安装的包管理工具,所以不需要独立安装。
可以通过查看版本号来检测
npm是否已经安装成功:
npm -v
如果已经安装了
npm,想要升级,只需要一条命令即可:
npm install npm -g
package.json
简介
使用 npm 来管理的 javascript 项目一般都有一个package.json文件。它定义了这个项目所依赖的各种包,以及项目的配置信息(比如名称、版本、依赖等元数据)。
package.json中的内容就是 json 形式。
重要字段
name - 包名。version - 包的版本号。
description - 包的描述。
homepage - 包的官网 url 。
author - 包的作者姓名。
contributors - 包的其他贡献者姓名。
dependencies - 指定项目运行所依赖的模块。
devDependencies - 指定项目开发所依赖的模块。
repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
main - main 字段是一个模块ID,它是一个指向你程序的主要项目。就是说,如果你包的名字叫 express,然后用户安装它,然后require("express")。
keywords - 关键字
bin - 用来指定各个内部命令对应的可执行文件的位置。
scripts - 指定了运行脚本命令的npm命令行缩写。
例:一个完整的package.json
{ "name": "reactnotes", "version": "1.0.0", "description": "react 教程", "main": "./index.js", "dependencies": { "react": "^15.4.1", "react-dom": "^15.4.1" }, "devDependencies": { "webpack-dev-server": "^1.16.2" }, "scripts": { "start": "node index.js" }, "repository": { "type": "git", "url": "git+https://github.com/atlantis1024/ReactNotes.git" }, "author": "victor", "license": "Apache-2.0", "bugs": { "url": "https://github.com/atlantis1024/ReactNotes/issues" }, "homepage": "https://github.com/atlantis1024/ReactNotes#readme" }
package 版本
上文介绍 package.json 文件中的dependencies和
devDependencies字段,这二者都是 json 数组。它们的每个 json 子对象,key 表示包名,value 表示版本。
npm 允许的版本声明方式十分多样。下面将为你介绍一二。
说明
version:安装一个确定的版本,遵循“大版本.次要版本.小版本”的格式规定。如:1.0.0。
~version:以
~1.0.0来举例,表示安装1.0.x的最新版本(不低于1.0.0)。但是大版本号和次要版本号不能变。
^version:以
^1.0.0来举例,表示安装1.x.x的最新版本(不低于1.0.0),但是大版本号不能变。
1.2.x:表示安装1.2.x。
>、>=、<、<=:可以像数组比较一样,使用比较符来限定版本范围。
version1 - version2:相当于
>=version1 <=version2.
range1 || range2:版本满足range1 或 range2 两个限定条件中任意一个即可。
tag:一个指定 tag 对应的版本。
*或
""(空字符串):任意版本。
latest:最新版本。
http://...或
file://...:你可以指定http或本地文件路径下的包作为版本。
git...:参考下面的“直接将 Git Url 作为依赖包版本”
user/repo:参考下面的“直接将 Git Url 作为依赖包版本”
例:下面的版本声明都是有效的
{ "dependencies" : { "foo" : "1.0.0 - 2.9999.9999" , "bar" : ">=1.0.2 <2.1.2" , "baz" : ">1.0.2 <=2.3.4" , "boo" : "2.0.1" , "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0" , "asd" : "http://asdf.com/asdf.tar.gz" , "til" : "~1.2" , "elf" : "~1.2.3" , "two" : "2.x" , "thr" : "3.3.x" , "lat" : "latest" , "dyl" : "file:../dyl" } }
直接将 Git Url 作为依赖包版本
Git Url形式可以如下:
git://github.com/user/project.git#commit-ish git+ssh://user@hostname:project.git#commit-ish git+ssh://user@hostname/project.git#commit-ish git+http://user@hostname/project/blah.git#commit-ish git+https://user@hostname/project/blah.git#commit-ish
常用命令
npm 的命令很多,这里,我挑选几条 npm 中比较重要的命令来介绍。更多详情可以参考 npm 官方文档
help
个人认为这是最重要的命令。对命令行的用法有问题的时候,还有什么比查看帮助信息更有用呢?查看 npm 命令列表**
npm -h
查看所有命令使用方法
npm -l
查看某条命令详细帮助信息
如:要查看 npm install 命令的详细帮助信息
查看命令的快捷帮助信息
npm install -h
打开命令的帮助文档
npm help install
npm init
npm init用于初始化一个新的
package.json文件。
命令格式
npm init [-f|--force|-y|--yes]
说明
执行命令后,npm 会问你一系列问题,然后在执行命令的目录下创建一个
package.json文件。
如果使用
-f/
--force或
-y/
--yes,npm 会使用默认值为你创建
package.json文件,不再询问任何问题。
npm install
npm install 用于安装模块。
命令格式
[code]npm install (with no args, in package dir)
npm install [<@scope>/]<name>
npm install [<@scope>/]<name>@<tag>
npm install [<@scope>/]<name>@<version>
npm install [<@scope>/]<name>@<version range>
npm install <tarball file>
npm install <tarball url>
npm install <folder>
alias: npm i
common options: [-S|--save|-D|--save-dev|-O|--save-optional] [-E|--save-exact] [-B|--save-bundle] [--dry-run]
说明
npm install(with no args, in package dir)
默认的,将
package.json中声明的所有模块安装到当前路径下的 node_modules 目录中。这称为本地安装。
如果,加上 -g, --global 参数,npm 会将当前包安装到全局(系统目录下),这称为全局安装。
npm install <folder>
安装位于文件系统上某文件夹中的包。
npm install <tarball file>
安装位于文件系统上的包。注意:如果你只想链接一个 dev 目录到你的 npm 根目录,使用
npm link更容易做到这一点。
例:
npm install ./package.tgz
npm install <tarball url>
获取 url,然后安装它。为了区分此选项和其他选项,参数必须以“http://”或“https://”开头。
例:
npm install https://github.com/indexzero/forever/tarball/v0.5.6[/code]npm install [<@scope>/] [-S|--save|-D|--save-dev|-O|--save-optional]
例:npm install saxnpm install有3个可选参数,用于保存或更新主package.json中的包版本:-S, --save:包将被添加到dependencies。-D, --save-dev:包将被添加到devDependencies。-O, --save-optional:包将被添加到optionalDependencies。
当使用上述任何选项将依赖保存到package.json时,有两个额外的可选标志:-E, --save-exact:会在package.json文件指定安装模块的确切版本。-B, --save-bundle: 包也将被添加到bundleDependencies。npm install [<@scope>/]<name>@<tag>
安装被 tag 引用的包的版本。如果 tag 不存在于该包的注册表数据中,则失败。
例:npm install sax@latest npm install @myorg/mypackage@latestnpm install [<@scope>/]<name>@<version>
安装指定的包的版本。如果版本尚未发布到注册表,则失败。
例:npm install sax@0.1.1 npm install @myorg/privatepackage@1.5.0npm install [<@scope>/]<name>@<version range>
安装与指定版本范围相匹配的包版本。
例:npm install sax@">=0.1.0 <0.2.0" npm install @myorg/privatepackage@">=0.1.0 <0.2.0"npm uninstall
npm uninstall用于卸载包。
命令格式npm uninstall [<@scope>/]<pkg>[@<version>]... [-S|--save|-D|--save-dev|-O|--save-optional] aliases: remove, rm, r, un, unlink
说明
在全局模式下(即,在命令中附加-g或--global),它将当前包上下文作为全局包卸载。npm uninstall有3个可选参数,用于保存或更新主 package.json 中的包版本:-S, --save:包将被添加到dependencies。-D, --save-dev:包将被添加到devDependencies。-O, --save-optional:包将被添加到optionalDependencies。
例:npm uninstall sax npm uninstall sax --save npm uninstall @myorg/privatepackage --save npm uninstall node-tap --save-dev npm uninstall dtrace-provider --save-optionalnpm update
npm update用于更新本地安装的模块。
命令格式npm update [-g] [<pkg>...] aliases: up, upgrade
说明
注:从npm@2.6.1开始,npm update仅更新顶级包。旧版本的 npm 会递归检查所有的依赖。如果要达到旧版本的行为,请使用npm --depth 9999 update。npm config
npm config命令用于管理配置文件。
命令格式npm config set <key> <value> [-g|--global] npm config get <key> npm config delete <key> npm config list npm config edit npm get <key> npm set <key> <value> [-g|--global] aliases: c
说明npm config set <key> <value> [-g|--global]: 设置一个配置参数。
例:npm config set foo:port 80npm config get <key>:获取一个配置参数。
例:npm config get foo:portnpm config delete <key>:删除一个配置参数。
例:npm config delete foo:portnpm config list:打印配置参数列表。npm config edit:直接编辑配置文件。npm get <key>:npm config get <key>的简写。npm set <key> <value> [-g|--global]:npm config set <key> <value> [-g|--global]的简写。npm publish
npm publish用于发布一个包。
命令格式npm publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>] Publishes '.' if no argument supplied Sets tag 'latest' if no --tag specified
说明
将包发布到注册表,以便可以按名称安装。如果没有本地.gitignore或.npmignore文件,则包括软件包目录中的所有文件。如果这两个过滤文件都存在时,某个文件被.gitignore忽略,而不被.npmignore忽略,则它将被包括。npm run
如果在package.json文件中的scripts字段定义了命令,就可以使用npm run来执行脚本命令。
例:
假设package.json文件中的scripts字段如下定义:"scripts": { "test": "mocha", "lint": "eslint lib bin hot scripts", "prepublish": "npm run test && npm run lint", "start": "node index.js" }npm run test:相当于执行mocha命令。它会开始执行测试框架 Mocha 。npm run lint:相当于执行eslint lib bin hot scripts命令。它会开始执行 eslint 检查。npm run prepublish:相当于执行npm run test和npm run lint两条命令。现在你了解如何复合命令了吧。npm start:相当于执行node index.js。Node.js 启动一个服务的入口脚本。参考
npm 官方文档
相关文章推荐
- npm 使用小结
- npm使用小结
- Android PopupWindow使用方法小结
- npm使用sinopia搭建私服---错误
- tensorflow上lenet的使用小结
- NotificationListenerService使用小结
- 关于c#中委托使用小结
- Spring使用小结2
- Sql Server临时表和游标的使用小结
- 使用npm安装一些包失败了的看过来(npm国内镜像介绍)
- Spring AOP使用小结
- Java关键字static、final使用小结
- Android Studio 简单介绍和使用问题小结
- tomcat结合nginx使用小结
- STL set 使用方法小结
- Node.js从入门到实战(三)Npm使用介绍
- DCloud使用小结
- GetAdaptersAddresses使用小结
- UIPanGestureRecognizer使用小结