Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

ViteでError: EISDIR: illegal operation on a directory, readって表示されるときは"workspaces": ["./"]をpackage.jsonに足すとよい

Viteを使っているとマシンによってビルドできなくて困っていた。

% npx vite -v
vite/4.4.9 linux-x64 node-v18.17.1
% npm -v
10.1.0
% npm run dev

> foobar@0.0.0 dev
> vite

error when starting dev server:
Error: EISDIR: illegal operation on a directory, read
    at Object.readSync (node:fs:751:3)
    at tryReadSync (node:fs:451:20)
    at Object.readFileSync (node:fs:497:19)
    at hasWorkspacePackageJSON (file:///

こんなのが出て困っていた。何がディレクトリなのかよくわからんし困る。謎のエラー。自分はScalaは詳しいけどViteはぜんぜん分からないので数日苦悩していた。

hasWorkspacePackageJSONなどと表示されていたので以下のようなページを読むと

ja.vitejs.dev

viteはワークスペースを自動検出するらしい。手動でワークスペースを定義するとどうなるのか?と思い以下のようにpackage.jsonに追記するとアッサリ動いた。謎。

{
  "name": "mastodon-share-button",
  "version": "0.0.0",
  "type": "module",
  "workspaces": ["./"], // 追記
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  },
  "devDependencies": {
    "@scala-js/vite-plugin-scalajs": "^1.0.0",
    "vite": "^4.4.9"
  }
}

うーん不可解。なんか理由を知ってる方がいたら教えてください。

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?