目录
1. 简介
2. 常用命令
3. package.json (模块的描述符文件)
4. 版本号说明
1. 简介
npm (Node Package Manager)
1.通过npm可以安装、共享、分发代码 , 管理项目依赖关系及版本。
2.JavaScript世界的包管理工具(并且是Node.js平台的默认包管理工具)。
3.世界上最大的软件注册表,每星期大约有30亿次的下载量,包含超过600000个包(package代码模块)。
4.国内npm的访问速度很慢,可以使用cnpm来代替npm
npm 由三个独立的部分组成:
1. 网站
开发者查找包(package)、设置参数以及管理 npm
2. 注册表(registry)
一个巨大的数据库,保存了每个包(package)的信息
3. 命令行工具 (CLI)
通过命令行或终端运行。开发者可通过 CLI 与 npm 打交道
安装npm
brew install node
升级npm
brew upgrade node
卸载npm
brew uninstall node
重装npm
brew reinstall node
2. 常用命令
常用命令 | 说明 |
---|---|
npm -v | 当前版本(是否安装) |
npm install -g | 升级版本 |
npm search module_name | 搜索指定模块 |
npm install module_name | 本地方式安装指定模块。安装好之后,在 ./node_modules 下(运行 npm 命令时所在的目录)。项目中使用var hello = require('module_name'); 无需指定第三方包路径。终端第一行输出了模块的版本号及安装位置。 |
npm install module_name -g | 全局方式安装指定模块。安装好之后,在 /usr/local 下或 node 的安装目录下。可以直接在命令行里使用。 |
npm uninstall module_name | 从项目中移除已安装的模块 |
npm update module_name | 更新指定的已安装模块的版本(本地) |
npm update module_name -g | 更新指定的已安装模块的版本(全局) |
npm list | 列出项目中已安装的所有模块(本地) |
npm list -g | 列出系统中全局安装的所有模块(全局) |
npm list module_name | 指定模块的版本号 |
npm init | 创建模块(运行构建新项目的向导) |
npm adduser username | 注册用户(在npmjs.org创建一个账户) |
npm publish | 发布init创建的模块到npmjs.org,要发布模块必须先有账户 |
npm unpublish <package>@<version> | 撤销发布的init创建的模块 |
npm whoami | 显示你在npmjs.org上的账户详细信息 |
npm install module_name –-save | 在项目中安装一个模块,并把此模块添加到项目配置文件package.json中,作为项目依赖 |
npm install module_name –-save-dev | 在项目中安装一个模块,并把此模块添加到项目配置文件package.json中,作为项目开发依赖(devDependency) |
npm remove module_name | 从项目中移除已安装的模块 |
npm remove -g module_name | 从系统的全局安装中移除已安装的模块 |
npm remove module_name –save | 从项目中移除已安装的模块,并从配置依赖中移除依赖关系 |
npm remove module_name –save-dev | 从项目中移除已安装的模块,并从配置依赖中移除开发依赖(devDependency)关系 |
1.
错误:npm err! Error: connect ECONNREFUSED 127.0.0.1:8087
解决:npm config set proxy null
3. package.json (模块的描述符文件)
位于模块的目录下,用于定义包的属性。
举例
{
"name": "test-project",
"version": "1.0.0",
"description": "test project",
"homepage": "https://www.baidu.com/",
"author": "helloWorld",
"contributors": [
{
"name": "Hello",
"email": "hello@sina.com"
},
],
"dependencies": {
"accepts": "~1.2.12",
"array-flatten": "1.1.1",
},
"repository": {
"type": "git",
"url": "git+https://github.com/strongloop/express.git"
},
"main": "app.js",
"keywords": [
"express",
"framework",
],
"scripts": {
"test": "node test.js",
"start": "node app.js",
"clean": "rm -rf node_modules"
},
"private": true,
"license": "MIT",
"devDependencies": {
"after": "0.8.1",
},
}
字段 | 说明 |
---|---|
name | 包名 |
version | 包的版本号。 |
description | 包的描述。 |
homepage | 包的官网 url 。 |
author | 包的作者姓名。 |
contributors | 包的其他贡献者姓名。 |
dependencies | 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。 |
repository | 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。 |
main | main 字段指定了程序的主入口文件,require('moduleName') 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。 |
keywords | 关键字 |
scripts | 定义了三个任务脚本:启动start、测试test、清理clean。要执行脚本,分别使用命令: npm run start 、 npm run test 、npm run clean 。script会按照一定顺序寻找命令对应位置,比如本地的node_modules/.bin路径。 |
4. 版本号说明
版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。
如果只是修复bug,需要更新Z位。
如果是新增了功能,但是向下兼容,需要更新Y位。
如果有大变动,向下不兼容,需要更新X位。
在申明第三方包依赖时,除了可依赖于一个固定版本号外,还可依赖于某个范围的版本号。例如"argv": "0.0.x"表示依赖于0.0.x系列的最新版argv。
网友评论