很久没有维护这个站点了,今天抽空去更新了一下各种node的package,结果发现了如下错误:
报错信息
Node.js 12 actions are deprecated. Please update the following actions to use Node.js 16: actions/checkout@v2.
错误信息其实很直白,就是说Node 12现在不适用了,需要把你的Node更新为16。
大致原因我也明白,因为每当我更新代码之后,当前的Gatsby代码就会用Github的Workflow部署到Azure上。初始参数设置如下文。
但是打开了自己的package.json
, 上面赫然写着:
"engines": {
"node": "16.x",
...
}
为什么我的Node版本明明已经是16.x了,还是会报错呢?实在是搞得我一头雾水。
无奈之下, 我注意到错误下还有个信息,看着像是一篇博客,只好耐着性子继续看下去。顺便学了学action的语法。
解决方法
很简单,只要告诉Github的Action用Node 16即可。
- 找到你的workflow,应该是一个yml,打开会看到如下的界面
- JSON 大致如下
jobs:
build_and_deploy_job:
...
steps:
- uses: actions/checkout@v2
...
重点来了!很简单:
- 在step的下方插入一段
- uses: actions/setup-node@v3
with:
node-version: 16
搞定!