とんちゃんといっしょ

Cloudに関する技術とか日常とかについて書いたり書かなかったり

markdown-pdfを使おうとしてハマったので解決した話

MarkdownファイルをPDFに変換したくて調べていたところ、markdown-pdfというツールを見つけたんで試してみたら動かなかったので解決した話。

github.com

READMEに従ってnpmでインストール。

% npm install -g markdown-pdf --ignore-scripts

実行

% markdown-pdf sample.md
internal/validators.js:112
    throw new ERR_INVALID_ARG_TYPE(name, 'string', value);
    ^

TypeError [ERR_INVALID_ARG_TYPE]: The "file" argument must be of type string. Received type object
    at validateString (internal/validators.js:112:11)
    at normalizeSpawnArguments (child_process.js:398:3)
    at spawn (child_process.js:534:16)
    at Object.execFile (child_process.js:224:17)
    at WriteStream.<anonymous> (/usr/local/lib/node_modules/markdown-pdf/index.js:117:22)
    at WriteStream.emit (events.js:208:15)
    at finishMaybe (_stream_writable.js:645:14)
    at _stream_writable.js:623:5
    at WriteStream._final (internal/fs/streams.js:280:3)
    at callFinal (_stream_writable.js:616:10)

エラーやんけw

自分のmdファイルが悪いのかなと思ったりもしたが、ぐぐってみるとこんなIssueを発見

github.com

どうもインストールの際の --ignore-scripts オプションを外すと動くらしいのでアンインストールるして再インストールする

% npm remove -g markdown-pdf
removed 106 packages in 1.09s
% npm install -g markdown-pdf
...
+ markdown-pdf@10.0.0
added 106 packages from 388 contributors in 13.028s

再度実行するとエラーなくpdfファイルができていた

% markdown-pdf sample.md
% ls
sample.md         sample.pdf

これREADME変更したほうが良いのでは・・・