由于在安装新的插件时候,本地开发环境中使用的npm/cnpm的方式去安装插件,安装和运行过程中,没有出现问题。但是由于要推送到docker服务器上,却推送失败。查看了下,在推送的过程中使用了yarn 指令去更新和安装插件,报错信息为
9 6.457 error "node_modules/_file-saver@2.0.5@file-saver": Tarball is not in network and can not be located in cache (["/app/node_modules/_file-saver@2.0.5@file-saver","/usr/local/share/.cache/yarn/v6/npm-file-saver-2.0.5/node_modules/file-saver/.yarn-tarball.tgz"])
,查看了git上的yarn.lock 文件发现resolved上的路径使用的是相对路径,因此才导致推送的时候,找不到对应插件而报错,因此删除yarn.lock对应错误的数据,重新通过yarn 指令去更新对应的包可以就解决,对应的yarn.lock文件也会同时更新。后期项目插件新增更新,需要注意yarn.lock文件是否正常
1、yarn 和 npm
- 这两个都是包管理器,只是yarn使用了并行安装,安装速度比较快,输出信息比较简洁,且对应有个yarn.lock文件,可以保证安装版本的统一性。而npm 包主要是按队列安装,需要等当前的包安装完了,才可以安装其他的,这样安装效率比较慢,而且npm输出的信息比较冗余,npm5以后也有有了package-lock.json文件。
- 对应常用指令:
npm yarn npm init yarn init // 初始化
npm i | install yarn (install) // 安装依赖包
npm i x --S | --save yarn add x // 安装生产依赖并保存包名
npm i x --D | --save-dev yarn add x -D // 安装开发依赖并保存包名
npm un | uninstall x yarn remove // 删除依赖包
npm i -g | npm -g i x yarn global add x // 全局安装
npm un -g x yarn global remove x // 全局删除
npm run dev yarn dev | run dev // 运行命令
复制代码
2、便于管理window下管理node多版本
- 原因在家里电脑测试能否重现问题,发现无法重现,且对应yarn安装,只是node版本不一样而已。
- windows电脑安装多版本的node,需要下载nvmw,通过这个直接可以管理多个版本的node。
下载好后,查看对应的nvmw安装路径:
- 设置环境变量,环境路径为
- 通过
nvmw switch v14.0.0
指令可以永久
去更改版本,重新打开cmd
窗口,会出现默认版本都是v14.0.0的版本,输入path 可以看到指令设置的环境变量为C:\Users\40485\nvmw\nodejs\v14.0.0;
。如果需要返回原先版本,需要执行nvmw switch-deactivate
,然后重新打开窗口,查看对应的node版本恢复正常版本。
常用指令如下:
install <version> install the given version of Node
uninstall <version> uninstall the given version of Node
use <version> use the given version of Node in current shell
deactivate undo effects of nvmw in current shell
switch <version> permanently use the given version of Node as default
switch-deactivate permanently undo effects of nvmw
ls list the installed all Nodes
ls-remote list remote versions available for install
cleanup remove stale local caches
复制代码
使用案列:
nvmw ls
nvmw install v14.0.0
nvmw use v14.0.0
nvmw switch v14.0.0
node -v
复制代码
安装后,查看当前系统已有的node版本: