Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vue-tsc doesn't work with typescript 5.7.2 #5018

Closed
devhaozi opened this issue Nov 22, 2024 · 32 comments · Fixed by #5020
Closed

vue-tsc doesn't work with typescript 5.7.2 #5018

devhaozi opened this issue Nov 22, 2024 · 32 comments · Fixed by #5020
Labels
bug Something isn't working ❗ p4-important

Comments

@devhaozi
Copy link

devhaozi commented Nov 22, 2024

Vue - Official extension or vue-tsc version

2.1.10

VSCode version

none

Vue version

3.5.13

TypeScript version

5.7.2

System Info

System:
    OS: Windows 11 10.0.26100
    CPU: (16) x64 AMD Ryzen 7 6800H with Radeon Graphics         
    Memory: 9.81 GB / 31.21 GB
  Binaries:
    Node: 20.15.0 - C:\Program Files\nodejs\node.EXE
    npm: 10.9.0 - C:\Program Files\nodejs\npm.CMD
    pnpm: 9.13.2 - ~\AppData\Local\pnpm\pnpm.EXE
  Browsers:
    Edge: Chromium (129.0.2792.79)
    Internet Explorer: 11.0.26100.1882

package.json dependencies

{
  "dependencies": {
    "@fontsource-variable/jetbrains-mono": "^5.1.1",
    "@guolao/vue-monaco-editor": "^1.5.4",
    "@vue-js-cron/naive-ui": "^2.0.9",
    "@vueuse/core": "^11.3.0",
    "@xterm/addon-attach": "^0.11.0",
    "@xterm/addon-clipboard": "^0.1.0",
    "@xterm/addon-fit": "^0.10.0",
    "@xterm/addon-unicode11": "^0.8.0",
    "@xterm/addon-web-links": "^0.11.0",
    "@xterm/addon-webgl": "^0.18.0",
    "@xterm/xterm": "^5.5.0",
    "alova": "^3.2.4",
    "axios": "^1.7.7",
    "cronstrue": "^2.52.0",
    "echarts": "^5.5.1",
    "install": "^0.13.0",
    "lodash-es": "^4.17.21",
    "luxon": "^3.5.0",
    "marked": "^15.0.2",
    "mitt": "^3.0.1",
    "pinia": "^2.2.6",
    "pinia-plugin-persistedstate": "^4.1.3",
    "remove": "^0.1.5",
    "vue": "^3.5.13",
    "vue-echarts": "^7.0.3",
    "vue-i18n": "^10.0.4",
    "vue-router": "^4.4.5"
  },
  "devDependencies": {
    "@iconify/json": "^2.2.275",
    "@iconify/vue": "^4.1.2",
    "@rushstack/eslint-patch": "^1.10.4",
    "@tsconfig/node20": "^20.1.4",
    "@types/lodash-es": "^4.17.12",
    "@types/luxon": "^3.4.2",
    "@types/node": "^22.9.1",
    "@unocss/eslint-config": "^0.64.1",
    "@vitejs/plugin-vue": "^5.2.0",
    "@vue/eslint-config-prettier": "^10.1.0",
    "@vue/eslint-config-typescript": "^13.0.0",
    "@vue/tsconfig": "^0.6.0",
    "colord": "^2.9.3",
    "eslint": "^8.57.1",
    "eslint-plugin-vue": "^9.31.0",
    "md-editor-v3": "^5.0.2",
    "monaco-editor": "^0.52.0",
    "naive-ui": "^2.40.1",
    "npm-run-all2": "^7.0.1",
    "prettier": "^3.3.3",
    "prettier-plugin-organize-imports": "^4.1.0",
    "sass": "^1.81.0",
    "typescript": "^5.7.2",
    "unocss": "^0.64.1",
    "unplugin-auto-import": "^0.18.5",
    "unplugin-icons": "^0.20.1",
    "unplugin-vue-components": "^0.27.4",
    "vite": "^5.4.11",
    "vite-plugin-html": "^3.2.2",
    "vite-plugin-mock": "^3.0.2",
    "vite-plugin-static-copy": "^2.1.0",
    "vue-tsc": "^2.1.10"
  }
}

Steps to reproduce

update typescript to 5.7.2

What is expected?

no error

What is actually happening?

throw error:

C:\path\to\project\node_modules\.pnpm\[email protected][email protected]\node_modules\vue-tsc\index.js:34
            throw err;
            ^
Search string not found: "/supportedTSExtensions = .*(?=;)/"
(Use `node --trace-uncaught ...` to show where the exception was thrown)

Node.js v20.15.0
 ELIFECYCLE  Command failed with exit code 1.
ERROR: "type-check" exited with 1.
 ELIFECYCLE  Command failed with exit code 1.

Link to minimal reproduction

No response

Any additional comments?

No response

@pzgz
Copy link

pzgz commented Nov 22, 2024

Excatly same error message, tried 2.1.6 and 2.1.10

CleanShot 2024-11-23 at 02 51 26@2x

@acabreragnz
Copy link

Same here, in my local works but not in the CD pipeline 🤔

image

@acabreragnz
Copy link

I found the issue, Typescript was updated 1 hour ago to version 5.7.2.

For me, version 5.6.2 is working.

@teles
Copy link

teles commented Nov 22, 2024

I am experiencing the same problem when using vue-tsc version 2.1.10 with TypeScript 5.7.2. The error occurs when running the build script using pnpm

/node_modules/.pnpm/[email protected][email protected]/node_modules/vue-tsc/index.js:34
            throw err;
            ^
Search string not found: "/supportedTSExtensions = .*(?=;)/"
Node.js v22.11.0

To resolve this issue temporarily, I had to downgrade:

  • vue-tsc to version 2.0.29
  • typescript to version 5.6.2

Here is the updated portion of my package.json after the downgrade:

{
  "scripts": {
    "build": "vue-tsc -b && vite build"
    },
  "devDependencies": {
      "vue-tsc": "2.0.29",
      "typescript": "5.6.2",
      "vite": "^5.4.10",
      "@vitejs/plugin-vue": "^5.1.4"
  }
}

This downgrade fixed the issue. It appears to be related to an incompatibility between [email protected] and TypeScript 5.7.x.

@TimJohns
Copy link

TimJohns commented Nov 22, 2024

The incompatibility appears to be in the Volar repo, specifically where @volar/typescript patches the tsc code, because the tsc code changed with the typescript 5.7 release.

I was a little late to the Vue ecosystem and I haven't followed the Volar discussion, so I'm not 100% sure, but I believe Volar is a standalone project now. I'm wondering if this issue may be more appropriately handled over there, since Volar supports other TypeScript-based languages that are impacted by this issue. I searched the issues there, and didn't find anything yet, but it may just be that fresh, since TypeScript 5.7.2 is only about 5 hours old.

In the mean time, pinning TypeScript at 5.6.3 and allowing vue-tsc to go to 2.1.10 works for me.

@Dedicatus546
Copy link

same here

@sminnee
Copy link

sminnee commented Nov 25, 2024

At

export function run(tscPath = require.resolve('typescript/lib/tsc')) {
the file typescript/lib/tsc.js is referenced.

This file is now typescript/lib/_tsc.js, because the former file is now just a shim.

To work in all typescript versions, it would need to apply the transformations on both typescript/lib/tsc.js and typescript/lib/_tsc.js, and avoid throwing an error if the search text isn't found.

It might be worth updating https://github.com/volarjs/volar.js/blob/master/packages/typescript/lib/quickstart/runTsc.ts#L11 to:

  • accept either a string[] or a string for the tscPath.
  • accept an option to disable 'search text not found' errors.

@JaguarJack
Copy link

This has a huge impact. When will the version be released to solve this problem?

@ST-DDT
Copy link

ST-DDT commented Dec 8, 2024

I put up a PR for a fix. The changes worked for me in my testing. Hopefully, we can get this merged in and unblock Typescript upgrades.

I got lightly confused because that PR fixes this issue in another repository.
The fix for this repository is #5020

(This PR seems simpler than the other one)

Qiu-Quanzhi added a commit to Qiu-Quanzhi/Qiu-Quanzhi that referenced this issue Dec 9, 2024
@davidmatter davidmatter changed the title vue-tsc not work with typescript 5.7.2 vue-tsc doesn't work with typescript 5.7.2 Dec 9, 2024
@davidmatter davidmatter pinned this issue Dec 9, 2024
@davidmatter
Copy link
Collaborator

We've now landed the compatibility fix in master. To use this fix in your codebase, until we've released the next version, please point vue-tsc to:

pnpm i https://pkg.pr.new/vuejs/language-tools/vue-tsc@3fb59af

@Mettbrot
Copy link

Are there any plans to do a patch release for this anytime soon? I don't think vue-tsc@3fb59af is a viable option...

sikhote added a commit to rei/rei-cedar that referenced this issue Dec 12, 2024
Creates MediaObject component using Layout component
Lots of examples
Some new supporting Sass mixins
Some new supporting JS utilities
Updated and pinned vue-tsc and typescript because of vuejs/language-tools#5018
@johnsoncodehk
Copy link
Member

Sorry for the delay, I am currently no longer able to maintain this project full time. Since the next version depends on some Volar.js updates, I'll be working on the backlog here once the next Volar.js version is completed and released.

This project currently relies heavily on the developers I'm sponsoring to work on in their spare time. If you would like to help keep this project sustainable, please consider joining the insiders program, where we aim to support at least one part-time developer.

Aietes added a commit to floatingpixels/supabase-nuxt that referenced this issue Dec 13, 2024
qiyue2015 added a commit to qiyue2015/vue3-vant-mobile that referenced this issue Dec 14, 2024
* commit '259063b2721d3cc1e820fa1f01864f49539d04a0': (30 commits)
  feat: Add documentation cell
  feat: remove screen adaptation prompt
  feat: Improve the prompt for screen adaptation in night mode
  feat: add screen adaptation prompt
  chore: release v3.4.0
  feat: Support JSON5 (easy-temps#136)
  chore: Update all deps
  chore: release v3.3.1
  chore: Apply lint
  chore: Update vite deps optimization config
  chore: Update to vite 6
  chore: pin typescript - vuejs/language-tools#5018
  chore: Update all deps
  perf: control the nested display of related files for vscode (easy-temps#135)
  chore: release v3.3.0
  refactor: combine vant i18n setup (easy-temps#133)
  feat: Lazy loading the localization files
  chore: release v3.2.1
  chore: Update editorconfig
  fix: Add `route.name` null check (easy-temps#132)
  ...
tim-script added a commit to tim-script/sanctum that referenced this issue Dec 16, 2024
This avoids a problem with vue-tsc and Typescript 5.7. See:

vuejs/language-tools#5018
typed-sigterm added a commit to typed-sigterm/renovate-config that referenced this issue Dec 16, 2024
@amir20
Copy link

amir20 commented Dec 17, 2024

Can we reopen this issue until the patch has been released?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working ❗ p4-important
Projects
None yet
Development

Successfully merging a pull request may close this issue.