HaneCa

独り立ちへ向けた長い道

node.jsでファイル一覧を取得エラー

投稿日: 2017年8月5日 最終更新日: 2018年1月4日

node.jsでディレクトリに含まれるファイル一覧を取得しようとした時に、次のようなエラーが発生した。

{ Error: ENFILE: file table overflow, scandir '/Users/xxx/Documents/prj/node_modules/tar-pack/test/fixtures/to-pack'
  errno: -23,
  code: 'ENFILE',
  syscall: 'scandir',
  path: '/Users/xxx/Documents/prj/node_modules/tar-pack/test/fixtures/to-pack' }

原因は、実装方法に問題があるわけではなく、Mac OS X Sierraの制約であった様子。解決方法は次のコマンドをコンソールで実行すれば良い。

$ echo kern.maxfiles=65536 | sudo tee -a /etc/sysctl.conf
$ echo kern.maxfilesperproc=65536 | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -w kern.maxfiles=65536
$ sudo sysctl -w kern.maxfilesperproc=65536
$ ulimit -n 65536

このサイトを参考にしました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください