はじめに
pandocの環境を再構築するために、mermaid-filterをインストールしようとしたら次のエラーが出てハマった。
$ sudo npm install -g mermaid-filter /usr/local/bin/mermaid-filter -> /usr/local/lib/node_modules/mermaid-filter/index.js > puppeteer@1.14.0 install /usr/local/lib/node_modules/mermaid-filter/node_modules/puppeteer > node install.js ERROR: Failed to download Chromium r641577! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download. { Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/mermaid-filter/node_modules/puppeteer/.local-chromium' -- ASYNC -- at BrowserFetcher.<anonymous> (/usr/local/lib/node_modules/mermaid-filter/node_modules/puppeteer/lib/helper.js:110:27) at Object.<anonymous> (/usr/local/lib/node_modules/mermaid-filter/node_modules/puppeteer/install.js:64:16) at Module._compile (internal/modules/cjs/loader.js:701:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10) at Module.load (internal/modules/cjs/loader.js:600:32) at tryModuleLoad (internal/modules/cjs/loader.js:539:12) at Function.Module._load (internal/modules/cjs/loader.js:531:3) at Function.Module.runMain (internal/modules/cjs/loader.js:754:12) at startup (internal/bootstrap/node.js:283:19) at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3) errno: -13, code: 'EACCES', syscall: 'mkdir', path: '/usr/local/lib/node_modules/mermaid-filter/node_modules/puppeteer/.local-chromium' } npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! puppeteer@1.14.0 install: `node install.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the puppeteer@1.14.0 install script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
解決方法
どうもchromiumブラウザをダンロードしてこようとしているようだが本来は特に必要ない。 ダンロードをスキップする場合は次の環境変数を設定しろというメッセージが出た。
Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.
いろいろ調べて次のようにしたが状況は変わらない。
$ npm config set PUPPETEER_SKIP_CHROMIUM_DOWNLOAD TRUE -g
ここの情報をもとに次のようにしたところ、エラーが回避できた。
$ sudo npm config set puppeteer_skip_chromium_download true -g
小文字なんだってさ。