MarkdownファイルをPDFに変換したくて調べていたところ、markdown-pdfというツールを見つけたんで試してみたら動かなかったので解決した話。
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を発見
どうもインストールの際の --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変更したほうが良いのでは・・・