## 前提 ```console $ pretteird --version pretteird 0.25.2 ``` ## 再現手順 ```console $ mkdir -p ~/git/github.com/tadashi-aikawa/silhouette $ cd $_ $ echo 'console.log("hoge")' > index.ts $ cat index.ts | prettierd index.ts Error: Cannot find module './parser-typescript.js' Require stack: - /home/tadashi-aikawa/git/github.com/tadashi-aikawa/silhouette/node_modules/prettier/index.js - /home/tadashi-aikawa/.local/share/mise/installs/node/20.11.0/lib/node_modules/@fsouza/prettierd/dist/service.js - /home/tadashi-aikawa/.local/share/mise/installs/node/20.11.0/lib/node_modules/@fsouza/prettierd/node_modules/core_d/lib/server.js - /home/tadashi-aikawa/.local/share/mise/installs/node/20.11.0/lib/node_modules/@fsouza/prettierd/node_modules/core_d/lib/daemon.js ``` - 別のディレクトリで実行したときは動作する - `npm -i D`でローカルにインストールし、`npx prettierd`をつかっても同じ ## 存在しないnode_modules [[スタックトレース]]に表示される以下のパスはそもそも存在しない。`node_modules`がないから。 ``` /home/tadashi-aikawa/git/github.com/tadashi-aikawa/silhouette/node_modules/prettier/index.js ``` だが `npm i -D prettier`でインストールしても、状況は変わらない。 ```console $ ll /home/tadashi-aikawa/git/github.com/tadashi-aikawa/silhouette/node_modules/prettier | grep index .rw-r--r-- 36k 23 Feb 12:57 index.cjs .rw-r--r-- 27k 23 Feb 12:57 index.d.ts .rw-r--r-- 802k 23 Feb 12:57 index.mjs ``` インストールしても`index.js`というパスは存在しない。`package.json`の先頭は以下。 ```json { "name": "prettier", "bin": "./bin/prettier.cjs", "main": "./index.cjs", "browser": "./standalone.js", "unpkg": "./standalone.js", "exports": { ``` ## キャッシュクリアしてみる ```console npm cache clean --force ``` 変わらず。 ## コマンドを少し変えてみる ```console cat index.ts | prettierd ../index.ts ``` にしたらなぜか動いた。`../index.ts`は存在しない。 ## prettierdプロセスがゾンビになっていた ```console $ ps -ef | grep prettier tadashi+ 1842 555 0 Feb22 ? 00:00:11 prettierd tadashi+ 30654 24888 0 Feb22 ? 00:00:05 prettierd tadashi+ 75532 68015 0 Feb22 ? 00:00:00 prettierd tadashi+ 75760 68015 0 Feb22 ? 00:00:00 prettierd tadashi+ 76045 68015 0 Feb22 ? 00:00:00 prettierd tadashi+ 76267 68015 0 Feb22 ? 00:00:00 prettierd tadashi+ 76565 68015 0 Feb22 ? 00:00:00 prettierd tadashi+ 87184 61499 0 05:04 ? 00:00:00 prettierd tadashi+ 101669 89768 0 12:29 ? 00:00:00 prettierd tadashi+ 106068 89768 0 12:36 ? 00:00:00 prettierd tadashi+ 107439 89768 0 12:39 ? 00:00:00 prettierd tadashi+ 110267 89768 0 12:51 ? 00:00:00 prettierd tadashi+ 114898 89768 0 13:12 ? 00:00:00 prettierd tadashi+ 120304 89770 0 13:25 pts/0 00:00:00 grep prettier ``` 恐らく、これらのプロセスが該当パスを掴んでいたと思われる。プロセスをkillしたら期待通り動いた。 ```console $ pkill prettierd $ cat index.ts | prettierd index.ts console.log("hoge"); ```