動機
好久沒去Hexo官網逛逛了,陡然發現有新版本了,其重要的改進在於生成靜態文件的速度,對於文章越寫越多,生成時間越來越長的我,是個極大的誘惑。作為一個還停留在2.X版本的Hexo黨,毅然決然地要嘗一下鮮。
思路
1.先全局升級hexo-cli:
npm i hexo-cli -g
通過hexo version查看下版本:
hexo: 3.2.0 //版本號已變
hexo-cli: 1.0.2
os: Darwin 15.5.0 darwin x64
http_parser: 2.7.0
node: 6.2.1
v8: 5.0.71.52
uv: 1.9.1
zlib: 1.2.8
ares: 1.10.1-DEV
icu: 57.1
modules: 48
openssl: 1.0.2h
注:我的node版本略高,不建議使用高版本,因為經常踩坑,5就足夠了。當然,可以使用nvm工具來管理node版本。
2.初始化:
hexo init new_blog && cd new_blog && npm i && hexo s
3.訪問
訪問下http://localhost:4000,確認下初始化成功了么。正常的話,看到的是默認主題的首頁。
4.遷移
把原博客目錄source下的東西全部拷貝到新目錄對應位置上。這是關鍵的一步,相當於遷移數據源。
5.接下來...
接下來,是容易踩坑的地方了,不要把原Hexo的配置文件_config.yml直接覆蓋過來,因為新版本的Hexo有些插件不走配置文件了,容易出錯。所以我在踩了這個坑之后,索性基於新_config.yml來更新對應值,至於插件的配置,全部放棄。
6.主題更新
接下來,是主題的更新,我使用的是Next。發現這個也有新版本了,索性一起更新了。具體步驟請參照這里。另,原有主題我更改了一些地方,又花了點時間把瑣碎的增量更改也做了。
7.插件
接下來,hexo g
一下,
發現有報錯,看了下報錯信息和我使用hexo-qiniu-sync
插件有關,於是把七牛插件給裝上:npm install hexo-qiniu-sync --save
。注意,別忘了更新_config.yml對應的配置,這個可以從原來的地方拷貝過來。
8.兩個插件
我還用到了兩個插件hexo-generator-sitemap,hexo-generator-feed,一行代碼搞定:
npm i hexo-generator-sitemap hexo-generator-feed --save
9.坑
下面到了最坑的地方了,平時使用hexo-browsersync來邊寫邊看效果,所以升級后自然也得想着它。裝上這個插件在我的環境下會導致大部分頁面白板,動畫效果也沒有了。查看了下生成的頁面代碼,底部有亂碼。估計是我的node版本太高導致的,使用nvm降到5,問題依舊。然后去插件Github地址逛逛有沒有遇到類似問題的同學,很遺憾,就四個提問題的,和我遇到的問題無關。轉變思路,看看是不是版本依賴問題,hexo-browsersync最重要的依賴便是browsersync,將其升級到最新版本:修改該模塊的package.json對應的browsersync版本號為*,然后npm update --save。接下來,試試問題有沒有解決,果然!不出所料!這樣做並沒有什么卵用…o(╯□╰)o。
糾結到最后,還是暫時去掉了這一功能:npm uninstall hexo-browsersync --save。以后會看一下里面源碼,看看到底哪兒的問題。而現在,我需要的就是一個可以寫文章和發布的Hexo,雖然用起來不是很便捷,但這已足夠了。
10.最后:
npm i --save hexo-deployer-git,配置下_config.yml對應的git選項。