NPM是随同NodeJS一起安装的包管理工具
npm -v
安装
npm install axios
//指定版本
npm install axios@0.21.1
更新到最新版本
npm install axios@latest -g
//or
npm update axios
查看依赖的基本信息
npm show axios
//or
npm info axios
npm install总结
- 发出
npm install命令- npm 向 registry 查询模块压缩包的网址
- 下载压缩包,存放在
~/.npm目录- 解压压缩包到当前项目的
node_modules目录
某个依赖需要翻墙时,可以单独设置镜像源安装
npm install xx --registry=http://registry.url
如果使用过程几乎都采用镜像源安装, 可以指定默认源(这里以淘宝镜像为例)
npm config set registry http://registry.npm.taobao.org
还原npm仓库
npm config set registry https://registry.npmjs.org/
查看当前镜像源
npm get registry
发布包流程
//初始化生成package.json
npm init
//注册包仓库账号
npm adduser
//上传包
npm publish
// 发布完测试安装包
npm i test --registry=https://registry.npmjs.org/
//管理包权限
npm owner ls koa //查看koa 包所有者
//添加包管理员
npm owner add <user> <package name> //用户名 包名 npm owner add gbk koa
//删除包管理员
npm owner rm <user> <package name>
-save 和 -save-dev
npm install webpack -save-dev
npm install less-loader -save
这里简单记录下save 与 save-dev:
-
-S 或--save 或者什么都不写, 都会把信息记录到dependencies中;dependencies中记录的都是项目在运行时需要的文件;
npm i i18n -S 与 npm i i18n 是一样的 -
--save-dev 则会把信息记录到 devDependencies 中;devDependencies 中记录的是项目在开发过程中需要使用的一些文件,在项目最终运行时是不需要的;也就是说我们开发完成后,最终的项目中是不需要这些文件的;
卸载
npm uninstall sass-loader //这个loader有毒..
注意点: 安装时用了-D 或者 -S等命令, 卸载时需要加上相应的后缀, 如上个例子的i18n, npm uninstall i18n -S
局域npm
企业的限制在于一方面要低耦合,减少手写代码量更快速开发, 另一方面却要考虑到模块保密性问题,所以企业需要搭建自己的npm仓库。 局域npm仓库搭建方法与搭建镜像站的方式几乎一样, 区别在于企业局域npm可以选择不同步官方源仓库中的包。
一个规范的模块应包含以下几个文件 (只是举例,文件名不需要一样)
- package.json
- bin: 存放可执行的二进制文件
- lib: 存放JavaScript代码
- doc: 存放文档
- test: 存放单元测试用例
平时用来做测试发布的模块最低限度应包含
- package.json 文档
- index.js
nrm
nrm 是npm源管理工具, 用它快速切换npm镜像源
//全局安装
npm install -g nrm
//查看可用镜像
nrm ls
如果要用企业自己搭建的仓库, 这里我们需要先添加
//nrm 添加仓库
nrm add test http://xxxx.cn
//添加完查看
nrm ls
重复添加只会生成一个
这时候我们就可以根据需要切换镜像
//切换淘宝
nrm use taobao
//切换回原生npm
nrm use npm
删除源
//删除
nrm del test
//查看是否删除成功
nrm ls
下面测试镜像源响应时间
时间可能跟网络、性能有关,大抵可以看出 taobao镜像源响应最快, 但是cnpm 跟 taobao 是两个镜像源啊!!!
npx
npx 方便在命令行调用项目内部安装的模块(其实我觉得暂时没用到。。)
//安装
npm install -g npx
//能查看版本, 但是这功能好鸡肋。。。
npx vue --version
//原理就是运行的时候,会到`node_modules/.bin`路径
//和环境变量`$PATH`里面,检查命令是否存在。
暂时没用到就不介绍更多了
nvm
它是Node版本管理工具。
在我们的日常开发中经常会遇到这种情况:手上有好几个项目,每个项目的需求不同,进而不同项目必须依赖不同版的 NodeJS 运行环境。如果没有一个合适的工具,这个问题将非常棘手。
nvm 应运而生,nvm 是 Mac 下的 node 管理工具,有点类似管理 Ruby 的 rvm,如果需要管理 Windows 下的 node,官方推荐使用 nvmw 或 nvm-windows。不过,nvm-windows 并不是 nvm 的简单移植,他们也没有任何关系。
由于我是windows电脑, 下面就医windows环境演示
安装
一定要卸载已安装的 NodeJS,否则会发生冲突。然后下载 nvm-windows 最新安装包,直接安装即可。
切换Node版本
//安装Node 版本
nvm install 版本号
//例子如下, 可以根据项目需求安装多个版本
//nvm install 16.10.1
//nvm install 17.1.0
如果你不知道Node目前有哪些版本, 可以查看命令
nvm list available
//查看已安装版本
nvm list
//切换版本
nvm use 16.10.0
//查看当前使用的Node版本
node -v
填坑:
use的时候乱码问题
我一开始切换版本的时候发现报错了, 提示 exit status 后面一串乱码
解决方法: 右键以管理员身份执行cmd (并且安装目录不要空格和中文)
由于之前卸载了Node, 现在重新指定下npm镜像