npm是什么
NPM是随同NodeJS一起安装的包管理工具,常见的使用场景有以下几种:
允许用户从NPM服务器下载别人编写的第三方包到本地使用。
允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
安装node:
去官网下载对应操作系统的 nodeJS,官网地址:https://nodejs.org/en/download/
新版的nodejs已经集成了npm,所以安装好node,npm也一并安装好了。安装成功查看版本:
npm -v
如果使用的是旧版本npm,使用这个命令升级
npm install npm -g
使用淘宝镜像:
npm install -g cnpm --registry=https://registry.npm.taobao.org
创建模块
创建模块,package.json 文件是必不可少的。使用 NPM 生成 package.json 文件,生成的文件包含了基本的结果。
npm init//进入文件目录下初始化项目生成 package.json 文件
初始化完成之后,文件目录下会生成 一个 package.json 文件,说明项目初始化完成。
在 npm 资源库中注册用户(使用邮箱注册):
npm adduser
发布模块
npm publish
package.json
package.json 位于模块的目录下,用于定义包的属性。
Package.json 属性说明
name - 包名。
version - 包的版本号。
description - 包的描述。
homepage - 包的官网 url 。
author - 包的作者姓名。
contributors - 包的其他贡献者姓名。
dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
main - main 字段指定了程序的主入口文件,require('moduleName') 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
keywords - 关键字
使用npm安装模块
npm 安装 Node.js 模块语法格式如下:
npm install <Module Name>
比如,使用 npm 命令安装常用的 Node.js web框架模块 express:
npm install express
安装好之后,express 包就放在了工程目录下的 node_modules 目录中,因此在代码中只需要通过 require(‘express’) 的方式就好,无需指定第三方包路径。
var express = require('express');
npm install 包名 --save-dev(npm install 包名 -D) :安装的包只用于开发环境,不用于生产环境
npm install 包名 --save (npm install 包名 -S):安装的包需要发布到生产环境的
## 全局安装和本地安装
```bash
npm install express # 本地安装
npm install express -g # 全局安装
本地安装:
1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
2. 可以通过 require() 来引入本地安装的包。
全局安装:
1. 将安装包放在 /usr/local 下或者你 node 的安装目录。
2. 可以直接在命令行里使用。
如果需要具备两者功能,则需要在两个地方安装它或使用 npm link。
查看安装信息
查看所有全局安装的模块:
npm list -g
卸载模块
npm uninstall express
更新模块
npm update express
搜索模块
npm search express
常用命令
npm start //构建项目的开发版本
npm run build //构建项目的生产版本
在npmjs.org/doc/ 可以看到更多关于npm的命令。
使用npm help 可查看某条命令的详细帮助,例如npm help install。
使用npm cache clear可以清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人。
使用npm unpublish @可以撤销发布自己发布过的某个版本代码。
小笔记
如果你遇到了使用 npm 安 装node_modules 总是提示报错:报错: npm resource busy or locked…。
可以先删除以前安装的 node_modules :
npm cache clean
npm install