包管理工具
npm
基础命令
npm -v
查看npm的版本npm version
查看所有模块的版本npm init
创建package.json,作用是记录当前node项目中依赖哪些第三方包,当我们把node项目发布时,就可以删除node项目中已安装的第三方包;npm i/install
安装包npm s/search 包名
搜索包npm r/remove
删除包npm uninstall 包名
卸载包npm root -g
查看全局包安装位置npm config ls
查看当前npm配置npm outdated
查看需要升级的包
一次安装多个包 (1)
npm i gulp-sass gulp-debug gulp-pug
(2)
npm i gulp{-sass,-debug,-pug}
支持的参数
--save
功能:之前旧的npm命令如果不带这个参数,则在json文件中不会产生依赖项;
-D
== --save-dev 开发依赖
-S
== --save 添加到依赖
-P
== --save-prod 添加到生产环境
-g
全局安装,一般都是一些工具才使用这个;
建议只在开发时使用的插件,单独安装到开发依赖,不要直接添加到依赖里,安装时需要-D,因为默认安装都是安装在dependencies里的,是用于生产需要的;
以版本号安装 下载包时,可以在包名后面@加上版本号,如果不指定版本号,则默认下载最新的;
转淘宝镜像:
npm install -g cnpm --registry=https://registry.npm.taobao.org
淘宝镜像官网:npm.taobao.org;
获取包信息
npm view vue
或npm v vue
单独获取包的最新版本号:
npm v vue version
;升级最新包:
npm i -g yarn@latest
源管理
查看源:
npm config get registry
修改源:
npm config set registry
源地址临时改变源:
npm --registry=https://registry.npmmirror.com/
镜像源地址:
npm
--- https://registry.npmjs.org/yarn
--- https://registry.yarnpkg.com/cnpm
--- https://r.cnpmjs.org/taobao
--- https://registry.npmmirror.com/nj
--- https://registry.nodejitsu.com/rednpm
--- https://registry.mirror.cqupt.edu.cn/npmMirror
--- https://skimdb.npmjs.com/registry/deunpm
--- http://registry.enpmjs.org/
其他命令
- 显示可用的script 运行命令
npm run
;
license协议
MIT
:只要用户在项目副本中包含了版权声明和许可声明,他们就可以拿你的代码做任何想做的事情,你也无需承担任何责任Apache
:类似于MIT,同时还包含了贡献者向用户提供专利授权相关的条款GPL
:修改项目代码的用户两次分发源码或二进制代码时,必须公布他的相关修改
npm link
对包创建软链接,通常用做本地开发组件时的调试
- 到需要创建link的包,执行
npm link
- 到需要使用link的包的项目下,执行
npm link 项目名
; - 在项目下的package.json文件下写一个假的包名依赖以及版本号,之后就可以直接在项目中使用了
npm unlink
可以撤消link的包
npm修改全局安装路径
默认全局路径在c盘,c盘为系统盘,系统盘一般容量比较小,不好清理,建议配置一下默认的路径
配置了全局路径,切换版本号也不用担心找不到全局安装的npm包了
npm config set prefix "D:\node_global"
npm config set cache "D:\node_cache"
修改之后查询:npm bin -g
发布管理
发布管理时需要注意使用npm官方源,一定要切换回来
npm adduser
用户登录npm whoami
查询当前登录用户,报错表示未登录npm publish
发布项目
package管理
name
名字version
版本管理private
是否私有description
包描述author
作者license
协议keywords
关键词homepage
项目主页files
发布文件列表(数组),如果不写默认取.gitignore里面不需要上传的文件,也有的文件会始终发布上去,比如package.json,readme.mdrepository
仓库- type 类型,如git
- url 仓库地址
main
入口文件module
模板文件types
ts类型定义文件scripts
执行脚本(下面列出一些勾子函数)prepublish
发布前做的事情
dependencies
项目运行时依赖的包devDependencies
开发依赖时的包peerDependencies
当别人安装你发布的包时,不会去自动安装peer的包,而是使用warning告诉用户你需要安装这些依赖,在peer填写的依赖之后,可以直接将自己的依赖扔到开发依赖engines
限制各包安装版本exports
管理导入的部分json{ ".": { "import": "./dist/component.js", "require": "./dist/component.umd.cjs" }, "./lib": { "import": "./lib/index.ts", "require": "./lib/index.ts" }, "./style.css": "./dist/style.css" }
引入时:
import 'component/style.css'
则会到指定的位置
官方文档:https://docs.npmjs.com/cli/v7/configuring-npm/package-json/
忽略文件不上传
创建.npmignore
文件,和.gitignore
差不多,希望哪些不发到npm包上面;
版本管理
自动修改版本号
npm version <update_type>
type值为:
- patch 0.0.
- minor 1.*.0
- major *.0.0
其他npm管理包命令
// 撤销整个包
npm unpublish --force 包名
// 撤销某个版本
npm unpublish 包名@版本号
版本规范:semver.org
npm短域
通过访问 npm.im/<package>
可直接跳转到npmjs对应的包地址
其他依赖镜像
设置node使用的镜像地址
npm config set disturl https://npmmirror.com/mirrors/node/
设置淘宝镜像也不管用,安装慢的,建议设置下以下镜像
# 设置常用模块的淘宝镜像
npm config set sass_binary_site https://npmmirror.com/mirrors/node-sass/
npm config set sharp_dist_base_url https://npmmirror.com/mirrors/sharp-libvips/
npm config set electron_mirror https://npmmirror.com/mirrors/electron/
npm config set puppeteer_download_host https://npmmirror.com/mirrors/
npm config set phantomjs_cdnurl https://npmmirror.com/mirrors/phantomjs/
npm config set sentrycli_cdnurl https://npmmirror.com/mirrors/sentry-cli/
npm config set sqlite3_binary_site https://npmmirror.com/mirrors/sqlite3/
npm config set python_mirror https://npmmirror.com/mirrors/python/
建议有新依赖包时,配置script,需要先安装:npm i -g rimraf
{
"scripts": {
"reinstall": "rimraf node_modules && npm i"
}
}
修改node_modules
推荐使用patch-package:https://github.com/ds300/patch-package
mklink
windows可以使用mklink
命令,仅限于cmd 终端
mac 需使用ln
命令
# MKLINK [[/D] | [/H] | [/J]] 链接名称 目标
# /d 给目录创建符号链接,简称符号链接、软链接;
# /h 创建硬链接,简称硬链接;
# /j 给目录创建联接点,简称软链接。
#以下例子将F:\project\demo 软链接到 D:\demo 目录下
mklink /j "D:\demo" "F:\project\demo"
创建软链接的好处是便于本地开发工具包使用
同时安装两个版本的包
npm install echarts@5.0.0 -S
npm install echarts4@npm:echarts@4.0.0 -S
yarn
npm的替代产品
特点
- 有缓存机制、速度更快
- 更可靠、安全
- 异步安装
安装
npm install -g yarn
使用
yarn
安装依赖yarn add <packageName>
下载yarn remove <packageName>
删除yarn upgrade <packageName>
更新yarn init
yarn install
生成package.jsonyarn global add <packageName>
安装全局(需要配置环境变量,通过查看全局路径获取)yarn global bin
查看全局路径;yarn cache dir
查看缓存路径yarn link
使当前项目可以被其他项目引用yarn link pkgName
安装link的项目
安装node-sass卡住的解决办法
yarn config set sass_binary_site https://npmmirror.com/mirrors/node-sass/ -g
pnpm
安装速度更快,安装过的版本直接引用快捷路径,不再安装
介绍:https://pnpm.io/zh/motivation
安装:npm install -g pnpm
升级:pnpm add -g pnpm
使用
pnpm install
安装依赖pnpm add <pkg>
安装包,pkg还可以是git地址pnpm update <pkg>
更新包,alias: uppnpm remove <pkg>
卸载包pnpm link --global
使当前本地包可在系统范围内使用pnpm link --global <pkg>
安装在全局link的包,如果不好用就用路径安装pnpm link ../demo
在当前项目安装demo项目的软链接pnpm unlink <pkg>
卸载link包pnpm -C demo dev
:指定demo目录执行dev命令
nrm
npm源管理器,可以快速地在npm源间切换
安装:npm i -g nrm
;
使用:
nrm ls
查看所有可选的源
nrm use taobao
切换对应的源
nrm test npm
测试相应源的响应时间
nrm add registr http://....
增加新的源
nrm del registr
删除对应的源
注意:nrm是用来切换源的 装包工具还是使用npm或yarn
nvm
是一款node切换版本的工具,用法和nrm类似
注意:安装之前请将之前的nodejs文件夹修改一下名字,之后再进行安装,避免出现使用错误情况;默认路径:C:\Program Files\nodejs
下载 下载地址: https://github.com/coreybutler/nvm-windows/releases
github进不去,可以进这个地址:https://lanzoui.com/ic14vtc
nvm-noinstall.zip
: 这个是绿色免安装版本,但是使用之前需要配置nvm-setup.zip
:这是一个安装包,下载之后点击安装,无需配置就可以使用,方便。Source code(zip)
:zip压缩的源码Sourc code(tar.gz)
:tar.gz的源码,一般用于*nix系统安装
按照提示完成安装即可,安装完成后可以检测一下是否安装成功
在cmd命令行输入nvm,如果出现nvm版本号和一系列帮s助指令,则说明nvm安装成功。
修改settings.txt
在你安装的目录下找到settings.txt文件,打开后加上
默认安装目录
C:\Users\{UserName}\AppData\Roaming\nvm
node_mirror: https://registry.npmmirror.com/mirrors/node/ npm_mirror: https://registry.npmmirror.com/mirrors/npm/
这一步主要是将npm镜像改为淘宝的镜像,可以提高下载速度。
node.js安装 可以先使用 nvm list 查看本地已安装的版本
然后使用 nvm list available 查看所有版本
使用 nvm insttall 版本号 安装制定的版本,如nvm install 12.2.0
NVM常用命令
nvm list
查看已经安装的版本nvm list installed
查看已经安装的版本nvm list available
查看网络可以安装的版本nvm version
查看当前的版本nvm install
安装最新版本nvmnvm use <version>
## 切换使用指定的版本nodenvm ls
列出所有版本nvm current
显示当前版本nvm alias <name> <version>
## 给不同的版本号添加别名nvm unalias <name>
## 删除已定义的别名nvm reinstall-packages <version>
## 在当前版本node环境下,重新全局安装指定版本号的npm包nvm on
打开nodejs控制nvm off
关闭nodejs控制nvm proxy
查看设置与代理nvm node_mirror [url]
设置或者查看setting.txt中的node_mirror,如果不设置的默认是 https://nodejs.org/dist/nvm npm_mirror [url]
设置或者查看setting.txt中的npm_mirror,如果不设置的话默认的是: https://github.com/npm/npm/archive/.nvm uninstall <version>
卸载制定的版本nvm use [version] [arch]
切换制定的node版本和位数nvm root [path]
设置和查看root路径
文档:各平台安装nvm教程
yalc
更好的管理本地包联调
- 发布包:
yalc publish
- 添加包:
yalc add *
- 更新包:
yalc push
- 移除包:
yalc remove *
常用CDN地址
常用cdn地址:https://cdn.jsdelivr.net/npm/jquery 后面填写包名
包对比
- 可以选择包对比:https://npm-compare.com/
参考地址