npm-包管理工具
npm
是一个包管理工具,如果安装可node
,npm
也一起跟着安装了。常用的包管理工具还有yarn
。因为npm的服务器时国外的,如果不翻墙的话,下载可能会很慢,推荐使用淘宝镜像。
使用淘宝镜像cnpm
安装cnpm,之后下载包的时候就可以用cnpm
代替npm
了
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install vue-cli
也可以直接设置下载仓库地址为淘宝镜像。
npm config set registry http://registry.npm.taobao.org/
npm get registry //检查是否设置成功
如果要发布自己的镜像,需要改回来
npm config set registry https://registry.npmjs.org/
基本使用
检查是否安装成功,出现版本号表示安装成功
npm -v
升级npm
npm install npm -g
使用npm安装模块
npm install 模块名 //当前目录安装
npm install 模块名 -g //全局安装
-
本地安装:安装好之后模块放在工程目录下的 node_modules 目录中,在代码中通过reqiuire('模块名')即可引入
-
全局安装:将安装包放在/usr/local下或者Node的安装目录,可以直接在命令行里使用
查看所有全局安装的模块
npm ls -g
卸载模块
npm uninstall 模块名
更新模块
npm update 模块名 //可以把当前目录下node_modules子目录里边的对应模块更新至最新版本。
npm update 模块名 -g // 可以把全局安装的对应命令行程序更新至最新版。
搜索模块
npm search 模块名
查看安装的模块
npm list --depth=0 -g //depth=0只显示深度为0的,不显示子模块
帮助命令 / 查看某条命令的具体说明
npm help
npm help 命令名
清空NPM本地缓存,用于对付使用相同版本号发布新版本代码的人。
npm cache clear
npx
npm5.2.0以上版本,提供了一个npx
命令。这个命令可以帮我们临时安装所需的包(也就是说可以不必单独下载某个包了),命令完成后会删除掉。
以create-react-app为例,之前我们安装和创建项目时这样的:
npm install create-react-app -g
create-react-app my-app
使用npx是这样的:
npx create-react-app my-app
上面代码还 体现了一点,就是可以自动执行运行命令(自动帮我们创建了my-app项目)。再举个例子:之前我们用http-server启动一个服务需要两步(先安装,再运行)
npm install -g http-server
http-server
现在一步到位:
npx http-server
更多好用的功能待补充...
使用package.json
我们可以使用npm init生成package.json,生成的文件包含了基本结果
npm init
name: (node_modules) runoob # 模块名
version: (1.0.0) #版本号
description: Node.js 测试模块(www.runoob.com) # 描述
entry point: (index.js) #入口文件
test command: make test #测试命令,暂不需要
git repository: https://github.com/runoob/runoob.git # Github 地址
keywords: #关键字
author: #作者
license: (ISC) #开源文件
About to write to ……/node_modules/package.json: # 生成地址
Is this ok? (yes) yes
如果后期有要下载的文件把版本同步到pakeage.json可以在安装时加上--save
。
npm install --save jade
如果是安装在开发环境下,使用--save-dev
npm install --save-dev jade
也可以先配置package.json
文件,然后在当前目录下执行npm install
。即可安装配置中的所有包。
遇到错误
npm err! Error: connect ECONNREFUSED 127.0.0.1:8087
解决办法:
$ npm config set proxy null
npm发布一个包
-
注册npm账号,很简单
-
npm init:选择一个文件夹,cd进去执行初始化命令。填完信息后,文件夹里多出一个package.json
-
在目录下新建一个index.js文件,或者你刚才修改了那个entry point的值
-
index.js里就一句话:module.exports=require('./lib')
-
写好README.md
-
执行npm login登录
-
在目录下执行npm publish,修改代码后再次发布,一定要改版本号
在npm资源库注册用户
npm adduser
Username:
Password:
Email:
发布模块
npm publish
撤销自己发布过的某个版本代码。
npm unpublish <package>@<version>
版本号
语义版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。当代码变更时,版本号按以下原则更新。
-
如果只是修复bug,需要更新Z位
-
如果是新增了功能,但是向下兼容,需要更新Y位。
-
如果有大变动,向下不兼容,需要更新X位。