hexoでCannot find moduleエラー

hexoコマンド実行時にエラーが出力される

発生環境は以下の通り。Archでは出ていない。

  • iojs v3.0.0
  • OSX 10.10.4

各コマンド実行時に以下のエラーが出力される。

1
2
3
{ [Error: Cannot find module './build/Release/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
{ [Error: Cannot find module './build/default/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
{ [Error: Cannot find module './build/Debug/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }

調べたらissueが上がっていた。

cf. hexo shows error message · Issue #1055 · hexojs/hexo

解法

1
npm install hexo --no-optional

すると良いみたい。試したところ確かにエラーが出なくなった。あるいは、最初のnpm install時に

1
npm install --no-optional

としてもエラーは出なかった。

–no-optional

npmのドキュメントによると

The –no-optional argument will prevent optional dependencies from being installed.

とのこと。

package.json

--no-optionalを付けるかどうかでpackage.jsonは変化するだろうか。

1
npm install hexo --no-optional --save

結論からいうと、package.jsonは変わらなかった。

別ディレクトリにgit cloneしてnpm installするとエラーが発生する。