0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

nuxt vue-tsc のエラー修正

Posted at

はしがき

重要度が高い module を install した commit を push しましたが、github action 上で build する時エラーが表示されました。

/home/runner/work/mj_client/mj_client/node_modules/vue-tsc/bin/vue-tsc.js:68
throw err;
^
Search string not found: "for (const existingRoot of buildInfoVersionMap.roots) {"
(Use node --trace-uncaught ... to show where the exception was thrown)

vue-tsc っぽい問題、typescript は最近導入して、あちこち使っているし、重要度が高い module も諦められないので、あれこれ試してみました。

目標

重要度が高い module を install している状態です。

  1. local から build する時、エラーが表示されないこと
  2. github action から build する時、エラーが表示されないこと

試してみること

  1. vue-tsc upgrade
  2. nuxt upgrade
  3. dependencies の version を固定すること(yarn の resolutions)
  4. yarn.lock node_module 削除/インストール

project module version

// package.json
// だいぶ省略しました。
{
  "dependencies": {
    "nuxt": "3.12.2"
  },
  "devDependencies": {
    "typescript": "^5.4.5",
    "vue-tsc": "^2",
  },
  "resolutions": {
  },
}

解決方法

結論

$ yarn upgrade vue-tsc@^2.0.24
$ yarn upgrade typescript@^5.5
$ yarn upgrade nuxt@^3.12.3

多分、upgrade 順番は関係なく、できます。(順番を切れ変えて試してみましたので)

流れ

vue-tsc upgrade

/home/runner/work/mj_client/mj_client/node_modules/vue-tsc/bin/vue-tsc.js:68

これをみて、vue-tsc から問題があるかなと言っても、仕方がないので、早速検索しました。

nuxt ではなく vue だし、typescript version が 5.5 なんですが、vue-tsc を v2 への upgrade すれば解決できる?と思って、upgrade しました。

$ yarn run tsc-vue@^2

ERROR Cannot start nuxt: Cannot find module 'vue-tsc/out/index'

結果は失敗

resolution

v2 への upgrade してから、このようなエラーか。
v1 と戻るしかないのか。と思いながら、読み続いたら、

dependencies の version を override する keyword を使ったら、すぐ直せそうらしいです。

// yarn.lock
vite-plugin-checker@^0.6.4

確かに、yarn.lock を確認したら、version が低いです。
なので、package.json に resolution を追加してみたら、

// package.json
{
  "resolution": {
    "vite-plugin-checker": "0.7.0"
  }
}

ERROR Cannot start nuxt: Cannot find module 'vue-tsc/out/index'

nuxt, vue-tsc upgrade

同じか...と言っても、下の comment から hint を得られました。

nuxt の version や vue-tsc の version が必要かなと思って、一緒に upgrade しました。

$ yarn upgrade nuxt@^3.12.3
$ yarn upgrade vue-tsc@^2.0.24

ERROR [uncaughtException] Cannot read properties of undefined (reading 'useCaseSensitiveFileNames')
at Object.proxyCreateProgram (node_modules/vite-plugin-checker/node_modules/@volar/typescript/lib/node/proxyCreateProgram.js:33:68)
at node_modules/vite-plugin-checker/dist/esm/checkers/vueTsc/typescript-vue-tsc/lib/typescript.js:120478:134
at Object. (node_modules/vite-plugin-checker/dist/esm/checkers/vueTsc/typescript-vue-tsc/lib/typescript.js:190853:3)
at Module._compile (node:internal/modules/cjs/loader:1241:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1295:10)
at Module.load (node:internal/modules/cjs/loader:1091:32)
at Module._load (node:internal/modules/cjs/loader:938:12)
at Module.require (node:internal/modules/cjs/loader:1115:19)
at require (node:internal/modules/helpers:130:18)
at Object.configureServer (node_modules/vite-plugin-checker/src/checkers/vueTsc/main.ts:41:21)

他のエラーが出てきた!
全然嬉しくない、っと言っても、さっきのエラーより、わかりやすいです。

多分... @volar/typescript の version がバラバラになっていて、そうかな。yarn.lock から検索したら、version 二つインストールされているし、

// yarn.lock
"@volar/typescript@^2.3.0":
"@volar/typescript@~2.4.0-alpha.2":

これのせいで、間違っている version の module を参考しているかなと思いました。

{
  "resolution": {
    "@volar/typescript": "2.4.0-alpha.2"
  }
}

同じエラーで失敗

yarn.lock node_module 削除/インストール

$ rm -rf node_modules yarn.lock
$ yarn install

エラーなくできました。
が、多いの dependencies が、modules の version が、yarn.lock が変わりました。

元に戻す、無駄遣い

スクリーンショット 2024-07-05 15.16.22.png

解決は嬉しいが、これほど多く変更したくありません。
なので、yarn.lock の変更の内容を見ながら、色々試してみました。

全部失敗したし、同じエラーなので、詳しく書きません。

  1. なんか @volar/typescript の dependency @volar/language-core が version 2.4.0-alpha.2 -> 2.4.0-alpha.15 になったので、resolution に追加
  2. yarn upgrade vite-plugin-checker@^0.7.0, yarn upgrade @volar/typescript@^2.4.0 これは新しく module を install しましたので、棄却
  3. yarn add vite

typescript も upgrade したら?

そうだ、最初に参考したことの typescript の version は 5.5 だったので、upgrade しました。

$ yarn upgrade typescript@^5.5

問題なく、build します。

本当にエラーがないのかあれこれ試してみました。

# 元に戻す
$ rm -rf node_modules
$ git switch main
$ yarn run install

$ yarn upgrade vue-tsc@^2.0.24
$ yarn upgrade nuxt@^3.12.3
$ yarn upgrade typescript@^5.5

$ git add .
$ git commit -a
$ git push origin main

github action にも問題なく build されました。

参考&関連 URL

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?