正儿八经更新Hexo
网上的文章,我看了些,抄来抄去,质量不敢恭维 查了很多资料之后有了点眉目,这是正儿八经版的Hexo 更新指南
今日可是说是花了一天时间在服务器上
早上写完Aria2远程下载
下午写V2Ray部署
然后既然玩了一天了,想着把Hexo也更新了吧
但上次从2.X 更新到3.5,也不知道为什么,硬是重新安装了一遍才算完
于是这次想找能不能update一样的升级,结果网上教程看得我云里雾里
先说一下,包和模块,我不太能区分,感觉就是,包相当于一个项目,有多个模块组成,下面提到的,嗯能理解就尽量理解吧~
相关命令的含义
首先搞明白输入的命令是干啥用的,别瞎输
npm outdated
:自带,查看是否有新版本,及是否标记更新(改写package.json)
npm-check
:一个包,检查是否有更新、错误以及不再使用的包,列出改动幅度
npm-check -u
:包命令,检查是否有新版本并选择是否升级(交互式)
npm-upgrade
:一个包,检查是否有新版本并是否写到package.json(注意,只是写json,不执行升级)
npm update
:自带,小版本更新并改json(npm 5.0后)
npm install
:自带,强大也复杂,看这里吧
关于升级操作
-
首先有
-g
和没有-g
分别对应全局包和本地(目录内)包 -
npm-check
并不会帮你更新包,需要搭配-u
-
但它会给你列出有变动的包,并以颜色区分变动幅度,简单讲就是大更新/小更新
-
npm i
亦即npm install
,一般来讲是安装操作,如果不加任何指令,默认是安装package.json里的所有模块及其依赖,用作升级的时候需要先使用npm-upgrade
标记需要升级的包,然后npm install
安装所有包,根据上文介绍,该命令会跳过已有的版本一致的包,故实现了更新 -
也可以用
npm i <name>
一个一个升级,没毛病,此时不需要npm-upgrade
-
--save
的作用是写json,实际上用处不大,因为,你可能不知道怎么用。 -
有一个包叫
npm-check-updates
,应该是集成了check
和upgrade
,但同样不会帮你升级,可搭配-u
更新json文件 -
标记过的包可以使用
npm outdated
查看(wanted)
讲到这里,应该比较清晰了,一般而言,升级有4种方案
npm update
,自带, 更新现有的node_modules
里的包,5.0后版本会写json。但不能选择性升级npm-upgrade && npm i
,选择性写package.json然后根据json安装,包括所有依赖,但npm-upgrade
没有-g
npm-check-updates -u && npm i
,好像是有一套判断标准(我估计是不会引发冲突的程度),自动标记更新的部分,写文件,更新。有-g
npm-check -u
,列出可以更新的包,选择需要更新的包,自动调用npm i
安装模块及依赖并写json,有-g
说白了,npm update
,npm i
是自带命令,i
的功能强一些,可以实现update
的操作,但在使用i
来update
的时候需要配合package.json
而npm-check
, npm-upgrade
这些,都是第三方的包,只是帮助你更好地管理其他的包或模块,比如更新json或自定义更新
npm-check
是个不错的包
升级
方案一,使用自带命令一键更新,但不会进行大版本更新
npm update -g && npm update
方案二,使用npm-check
自定义更新,可只选大版本更新,但出了什么问题自己担
npm i -g npm-check
npm-check -g -u && npm-check -u
最好用PowerShell,据说用git bash会有点问题
package.json
的作用
根据我这几个小时的研究,这是文件其实是整个项目需要的所有模块的记录 记下来了,当你在一个新的文件夹初始化的时候,可以直接根据这个文件,一键安装所有需要的模块
即,我要重新安装Hexo
在没有这个文件的时候,我需要npm i hexo --save
,这样我就有了hexo这个包所需的所有东西,并记录在案(但这个操作可能没啥用),然后再安装主题需要的模块,同样记录在案,etc
但如果我有这个文件,我只需要npm i
,就可以得到所有东西。一键安装。我觉得我们很多人都走了弯路,其实根本不用麻烦,一个package.json
就够
然后还要提到package-lock.json
这个文件,这是锁版本用的,相当于封装这样子吧,避免版本不兼容出问题,一般,可能,大概,也许,用不到。
Win下npm的更新
用PowerShell执行,参见这里
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Forcenpm install -g npm-windows-upgradenpm-windows-upgrade
重要参考文章
- 原文作者:九燈
- 原文鏈接:https://ferristale.com/update-Hexo/
- 原文鏈接:本作品採用CC BY-NC-ND 4.0. 進行許可,非商業轉載請註明出處(作者,原文鏈接),商業轉載請聯繫作者獲得授權。