2020-04-25

4/25

技術メモ用のサイトをHugoで新設することにした

来年末には旧版のGoogleサイトが使えなくなるそうなので、早く移行しないとなー、と前々から思っていた。 今回、ようやく重い腰を上げた形。

今時はhugoで作ったGitHub PagesのサイトはGitHub Actionで自動更新できるようだ。

参考:

…で、前々から目をつけていたHugoのテーマ「LEARN」を使うことにした。

Googleが去年公開したDocsyというテーマでもよさそうだと思ったけど、LEARNの方は一度軽く試したこともあったので、安心感があった。

LEARNで気に入らなかったところ

少しHugoのLEARNテーマでサイトを作っていたのだけど、少し不満が出てきた。

  • chapterページを作らないといけなくて、自由度が阻害されるように感じた。(自分でchapterページをカスタマイズするというやり方もあるが)
  • 検索が妙にヒットしすぎる
  • ページの目次がちょっとわかりにくい。慣れれば問題ないけど

GitBookを試してみたけど、OSS版は先行きが微妙

GitBookでもいいんじゃないかと思って試していたのだけど、残念なことに気がついた。

詳しくはSoftware > GitBookに書いた。

手順:

npm install -g gitbook-cli
mkdir new-docs
cd $_
gitbook init
gitbook serve

参考にした記事:

結局、Docsyへ

azuさんがGitBookからDocusaurusに移行していたので、それもいいかもと思ったけど、見た目がDocsyに似ていたのでもうDocsyでいいだろうと思った。

4/26

プロフィールサイトのgulpがつらい

昨日、Docsyを扱うにあたって、UbuntuマシンのNode.jsをv8 -> v12に上げた。

ReferenceError: primordials is not defined

今日、プロフィールサイト https://progrhy.me の編集をしようとそのまま作業していたら、次とほぼ同じ問題に遭遇した。

自分の環境で問題になったのは natives module.

% gulp
fs.js:35
} = primordials;
    ^

ReferenceError: primordials is not defined
    at fs.js:35:5
    at req_ (/home/progrhyme/my/repos/progrhyme.github.io/node_modules/natives/index.js:137:5)
    at Object.req [as require] (/home/progrhyme/my/repos/progrhyme.github.io/node_modules/natives/index.js:54:
10)
    at Object.<anonymous> (/home/progrhyme/my/repos/progrhyme.github.io/node_modules/vinyl-fs/node_modules/gra
ceful-fs/fs.js:1:37)
    at Module._compile (internal/modules/cjs/loader.js:1156:30)                                                at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
    at Module.require (internal/modules/cjs/loader.js:1042:19)
    at require (internal/modules/cjs/helpers.js:77:18)

自分の場合も、上の記事と同じように、 package-lock.json 内に graceful-fs のv3系への依存があった。
また、依存の解消は難しいようだった。

前回の挑戦から、gulpのバージョンアップは今のところ諦めているので、Node.jsのバージョンをv10系に下げることにした。

ReferenceError: internalBinding is not defined

次に出くわしたのは下のエラー:

% gulp
internal/util/inspect.js:31
const types = internalBinding('types');
              ^

ReferenceError: internalBinding is not defined
    at internal/util/inspect.js:31:15
    at req_ (/home/progrhyme/my/repos/progrhyme.github.io/node_modules/natives/index.js:137:5)
    at require (/home/progrhyme/my/repos/progrhyme.github.io/node_modules/natives/index.js:110:12)
    at util.js:25:21
    at req_ (/home/progrhyme/my/repos/progrhyme.github.io/node_modules/natives/index.js:137:5)
    at require (/home/progrhyme/my/repos/progrhyme.github.io/node_modules/natives/index.js:110:12)
    at fs.js:42:21
    at req_ (/home/progrhyme/my/repos/progrhyme.github.io/node_modules/natives/index.js:137:5)
    at Object.req [as require] (/home/progrhyme/my/repos/progrhyme.github.io/node_modules/natives/index.js:54:
10)
    at Object.<anonymous> (/home/progrhyme/my/repos/progrhyme.github.io/node_modules/vinyl-fs/node_modules/gra
ceful-fs/fs.js:1:37)

上の記事にあったように、 npm i natives@latest --no-save を実行したら解消した。