目录
npm init 在项目中引导创建一个package.json文件
npm是什么
NPM的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包,npm已经是全世界用的做多的包管理器。接下来看看常用命令
npm的安装
npm是基于nodejs的,所以我们需要先下载nodejs,地址:http://nodejs.cn/download,按照默认路径安装好之后,
运行 node -v: 运行 npm -v:
如果都输出了版本号,那么恭喜你,安装成功,接下来就可以使用npm命令。
npm install 安装模块
- npm i xxx:会把相关的包下载到项目中的node_modules,但不会把版本号写人package.json(不推荐)
- npm i xxx -D (--save-dev):会把相关的包下载到项目中的node_modules,同时把版本号写人package.json中的devDependecies,用于开发阶段的包放在里面
- npm i xxx -S (--save):会把相关的包下载到项目中的node_modules,同时把版本号写人package.json中的的dependecies,用在生产环境的包放在里面
- npm i xxx -g:全局安装
- 安装包,默认会安装最新的版本:npm install gulp
- 安装指定版本:npm install gulp@3.9.1
npm uninstall 卸载模块
- 如卸载本地的模块:npm uninstall xxx,会在 dependencies和devDependencies里查找匹配删除
- 如卸载本地的模块:npm uninstall xxx -S,会在 dependencies里查找匹配删除
- 如卸载本地的模块:npm uninstall xxx -D,会在 devDependencies里查找匹配删除
- 如卸载全局的模块:npm uninstall xxx -g,会在 全局dependencies和devDependencies里查找匹配删除
npm outdated 检查模块是否已经过时
npm update 更新模块
- npm update:更新本地的包
- npm update -g:更新全局的包
npm ls 查看安装的模块
- npm ls :查看本地安装的包信息
- npm ls -g:查看全局安装包的信息
npm init 在项目中引导创建一个package.json文件
{
"name": "demo05",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "webpack ",
"dev": "webpack-dev-server --open --hot"
},
"author": "",
"license": "ISC",
"devDependencies": {
},
"dependencies": {}
}
npm help 查看某条命令的详细帮助
例如输入npm help install,系统在默认的浏览器或者默认的编辑器中打开本地nodejs安装包的文件/nodejs/node_modules/npm/html/doc/cli/npm-install.html
npm root 查看包的安装路径
- npm root :查看本地安装包的路径
- npm root -g:查看全局安装包的路径
npm cache 管理模块的缓存
最常用命令无非清除npm本地缓存:npm cache clean
npm version 查看模块版本
npm package.json的语法
英文原版:https://docs.npmjs.com/files/package.json
这块内容好多,国内有好心人整理:《npm的package.json中文文档》,从这份文档拷贝出一些比较常见的,如下:
默认值
npm会根据包内容设置一些默认值。
-
"scripts": {"start": "node server.js"}
如果包的根目录有
server.js
文件,npm会默认将start
命令设置为node server.js
。 -
"scripts":{"preinstall": "node-waf clean || true; node-waf configure build"}
如果包的根目录有
wscript
文件,npm会默认将preinstall
命令用node-waf进行编译。 -
"scripts":{"preinstall": "node-gyp rebuild"}
如果包的根目录有
binding.gyp
文件,npm会默认将preinstall
命令用node-gyp进行编译。 -
"contributors": [...]
如果包的根目录有
AUTHORS
文件,npm会默认逐行按Name <email> (url)
格式处理,邮箱和url是可选的。#号和空格开头的行会被忽略。
name
在package.json中最重要的就是name和version字段。他们都是必须的,如果没有就无法install。name和version一起组成的标识在假设中是唯一的。改变包应该同时改变version。
name是这个东西的名字。注意:
- 不要把node或者js放在名字中。因为你写了package.json它就被假定成为了js,不过你可以用"engine"字段指定一个引擎(见后文)。
- 这个名字会作为在URL的一部分、命令行的参数或者文件夹的名字。任何non-url-safe的字符都是不能用的。
- 这个名字可能会作为参数被传入require(),所以它应该比较短,但也要意义清晰。
- 在你爱上你的名字之前,你可能要去npm registry查看一下这个名字是否已经被使用了。http://registry.npmjs.org/
version
version必须能被node-semver解析,它被包在npm的依赖中。(要自己用可以执行npm install semver
)
可用的“数字”或者“范围”见semver(7).
description
放简介,字符串,方便在npm search
中搜索