Hexo博客skapp主題部署填坑指南

相信你們都很喜歡 hexo skapp 的主題,因爲做者採用結巴分詞,加上須要依賴各類各樣的環境html

因此可能你們踩過不少坑,也許每一個人踩得坑不同,這裏使用 Docker 容器 centos 來部署,node

這樣你們的環境基本上保持一致,遇到坑的匹配率也會提,不用docker也行,直接從1開始閱讀。python

主要是對 node 不怎麼熟悉,分享一個填坑的有效手段:多看官方文檔,努力啃啃就能解決linux

 

0. 可選步驟:啓用容器android

$ docker run --name blog -itd -p 36963:8080 centos /bin/bash
$ docker attach blog 

 

1. 經過nvm 安裝 node 和 npmc++

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
$ source ~/.bashrc
$ nvm list-remote
$ nvm install v10.16.0
$ node -v
v10.16.0

 

2. 安裝 hexo-cligit

$ npm -g install hexo-cli
$ hexo init blog
$ cd blog 

這裏若是是國內,可能會有點慢,發現卡住就Ctrl+C 重來github

 

坑1:  若是沒有安裝 git ,直接 hexo init 就會報以下錯誤docker

INFO Cloning hexo-starter https://github.com/hexojs/hexo-starter.git
WARN git clone failed. Copying data instead
WARN Failed to install dependencies. Please run 'npm install' manually!shell

 解決,把 git 安裝了, ps: 這裏順便安裝 vim

$ yum -y install vim git

裝好後從新 hexo init blog  && cd blog 便可

 

 

3. 安裝 skapp 主題

& cd themes && git clone https://github.com/Mrminfive/hexo-theme-skapp.git

編輯文件../_config.yml ,將 theme 改爲  hexo-theme-skapp

 

4. 安裝依賴

npm install --save \
    hexo-autoprefixer \
    hexo-filter-cleanup \
    hexo-generator-feed \
    hexo-generator-sitemap \
    hexo-renderer-sass \
    hexo-renderer-swig \
    mamboer/lunr.js \
    moment \
    node-sass \
    object-assign

 

坑2: 這裏會有幾個卡頓點,由於國內網絡影響

以下中斷重來,不用擔憂的是已經裝好的包不會從新裝的,會接着未裝過的

 

 到下載 sharp 包也是一個卡住點,一樣中斷重來

 

 

顯示以下圖就安裝好了

 

5. 生成博客

$ hexo g

 

坑3: sharp 庫沒有編譯好
Something went wrong installing the "sharp" module

Cannot find module '../build/Release/sharp.node'

- Remove the "node_modules/sharp" directory, run "npm install" and look for errors
- Consult the installation documentation at https://sharp.pixelplumbing.com/en/stable/install/
- Search for this error at https://github.com/lovell/sharp/issues

根據提示三種解決辦法:


1)  刪除 sharp 而後從新 npm install 安裝一下

$ rm -rf node_modules/sharp
$ npm install

2)  參考官方網址

https://sharp.pixelplumbing.com/en/stable/install/

3)  參考github上的QA

https://github.com/lovell/sharp/issues

 

第一個辦法重裝一次仍然不行

 

第二辦法去官網文檔看看

 

 

官網上說明了環境要求

1. node.js 版本要在 6 以上 

2. python 要2.7

3. gcc 要 4.8 以上

結果發現我沒有裝gcc ,安裝一下

$ yum -y install gcc gcc-c++

 而後從新安裝一下sharp

$ rm -rf node_modules/sharp/
$ npm install --save sharp

 

 

另外你們可能會遇到其餘問題

坑4: node-gyp 或者 libvips 沒裝好

$ npm install node-gyp -g
$ npm install libvips -g

單獨全局從新裝一下,通常確保 which make 存在,python版本爲27 基本上都能裝上去

再不行多是系統發行版支持性問題,下面是官方列出支持的發行版

  • Debian 7+
  • Ubuntu 14.04+
  • Centos 7+
  • Alpine 3.8+ (Node 8+)
  • Fedora
  • openSUSE 13.2+
  • Archlinux
  • Raspbian Jessie
  • Amazon Linux
  • Solus

 

坑5: 缺乏nodejieba 也就是結巴分詞庫

忽然發現貌似主題做者也沒有給出nodejieba安裝的命令

ERROR Script load failed: themes/hexo-theme-skapp/scripts/renderer.js
Error: Cannot find module '/root/blog/node_modules/nodejieba/build/Release/nodejieba.node'

 

單獨安裝一下,不過不要轉到全局,裝到當前便可,nodejieba 和 sharp 同樣須要 node-gyp 編譯

$ npm install nodejieba --save

 

坑6: 缺乏make,gyp編譯不起來

gyp ERR! build error
gyp ERR! stack Error: not found: make

安裝一下編譯工具便可

$ yum -y install make automake

而後從新安裝一下 nodejieba 結巴分詞

$ npm install nodejieba --save

裝好後從新 hexo clean && hexo g

 

 

坑7: 缺乏 optipng-bin 

FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Error: spawn /root/blog/node_modules/optipng-bin/vendor/optipng ENOENT

 

第一時間沒想到是缺乏文件,只靠到對方扔了一個URL過來 http://hexo.io/docs/troubleshooting.html

而後是上面的錯誤碼是 ENOENT ,看了hexo官網問題文檔才知道這個錯誤碼錶示缺乏文件

 

說白點就是 opting-bin 沒有裝,這裏安裝一下

$ npm install --save optipng-bin

 

 

6. 曙光

而後從新生成博客

hexo clean && hexo g

 

這回終於生成好了

 

相信你們也遇到很多坑,windows的我也安裝過,也省事不了哪裏去,須要額外安裝 MSVC 和 Python27 來編譯 node-gyp

$ npm install -g windows-build-tools
$ npm install -g node-gyp

 

如遇到問題本文仍然解決不了,歡迎在評論區留言,把你們遇到的問題解決方法也添加到本文上去,方便新玩家快速填坑

 

7. 其餘的坑

坑8: 缺乏jpegtran-bin

FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Error: spawn /root/blog/node_modules/jpegtran-bin/vendor/jpegtran ENOENT

解決:

$ npm install --save jpegtran-bin

 

坑9: 運行 hexo clean && hexo g 出現解析錯誤

FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html
Error: Parse Error: <a href="https://stackoverflow.com/questions/47018914/cordova-android-emulation-err

說實話這鍋真得讓寫markdown 文檔得背,寫文章出現了特殊符號使得 Markdown 解析器沒法解析,好比

相關文章
相關標籤/搜索