feat: introduce tsdown, support mixed js & ts in codebase#2916
feat: introduce tsdown, support mixed js & ts in codebase#2916FloEdelmann merged 43 commits intovuejs:masterfrom
tsdown, support mixed js & ts in codebase#2916Conversation
🦋 Changeset detectedLatest commit: c030176 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
tsdown, support js & tstsdown, support mixed js & ts in codebase
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
2nofa11
left a comment
There was a problem hiding this comment.
If pull request #2931 is merged and incorporated into this PR, it may resolve some of the CI failures!!!
I believe this PR is an excellent fix 😍
FloEdelmann
left a comment
There was a problem hiding this comment.
Tested locally and it seems to work fine. Thank you for kicking off TypeScript support!
|
Thrilled to see this PR finally merged! |
Error: - `npm install` fails with "Unexpected top-level property default" error - ESLint cannot parse configuration from `eslint-plugin-vue` v10.7.0 Reason: - Version `^10.6.2` allows automatic updates to `10.7.0` - `eslint-plugin-vue@10.7.0` introduced TypeScript in build process generating `export default` - This is incompatible with ESLint 8 legacy config format (`.eslintrc.js`) - Upgrading to ESLint 9 is not viable because `@vue/cli-plugin-eslint` does not support it - Project uses Vue 2 with vue-cli which requires ESLint 8 Solution: - Pin exact version `10.6.2` (remove caret) to prevent automatic updates References: - PR #1036 - vuejs/eslint-plugin-vue#2916
Error: - `npm install` fails with "Unexpected top-level property default" error - ESLint cannot parse configuration from `eslint-plugin-vue` v10.7.0 Reason: - Version `^10.6.2` allows automatic updates to `10.7.0` - `eslint-plugin-vue@10.7.0` introduced TypeScript in build process generating `export default` - This is incompatible with ESLint 8 legacy config format (`.eslintrc.js`) - Upgrading to ESLint 9 is not viable because `@vue/cli-plugin-eslint` does not support it - Project uses Vue 2 with vue-cli which requires ESLint 8 Solution: - Pin exact version `10.6.2` (remove caret) to prevent automatic updates References: - Issue #989 - vuejs/eslint-plugin-vue#2916
Error: - `npm install` fails with "Unexpected top-level property default" error - ESLint cannot parse configuration from `eslint-plugin-vue` v10.7.0 Reason: - Version `^10.6.2` allows automatic updates to `10.7.0` - `eslint-plugin-vue@10.7.0` introduced TypeScript in build process generating `export default` - This is incompatible with ESLint 8 legacy config format (`.eslintrc.js`) - Upgrading to ESLint 9 is not viable because `@vue/cli-plugin-eslint` does not support it - Project uses Vue 2 with vue-cli which requires ESLint 8 Solution: - Pin exact version `10.6.2` (remove caret) to prevent automatic updates References: - PR #907 - vuejs/eslint-plugin-vue#2916
Error: - `npm install` fails with "Unexpected top-level property default" error - ESLint cannot parse configuration from `eslint-plugin-vue` v10.7.0 Reason: - Version `^10.6.2` allows automatic updates to `10.7.0` - `eslint-plugin-vue@10.7.0` introduced TypeScript in build process generating `export default` - This is incompatible with ESLint 8 legacy config format (`.eslintrc.js`) - Upgrading to ESLint 9 is not viable because `@vue/cli-plugin-eslint` does not support it - Project uses Vue 2 with vue-cli which requires ESLint 8 Solution: - Pin exact version `10.6.2` (remove caret) to prevent automatic updates References: - PR #821 - vuejs/eslint-plugin-vue#2916
|
This breaks custom Vue rules - not sure if officially supported - but it was working in past. In 10.6 and before you could create your own rules by using But this is no longer available in the package. |
Ref: vuejs/eslint-plugin-vue#2916 (comment) The utils are no longer exported, and unless this becomes a ESLint language plugin[1] we cannot really add our own Vue Template rules. [1]: vuejs/eslint-plugin-vue#2778 Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Renamed: - `vue3-recommended` config to just `recommended` (vuejs/eslint-plugin-vue#2648) - `component-tags-order` rule to `block-order` (vuejs/eslint-plugin-vue#2627) Does not work with 10.7.0 because of vuejs/eslint-plugin-vue#2916.
Hi 👋, Vue team!
I've been trying to contribute to
eslint-plugin-vueand recently noticed there might be plans to rewrite it in TypeScript, though things seem to have stalled. I’d like to help move this effort forward.This PR introduces
tsdown, a tool that can gradually transform mixed JavaScript/TypeScript codebases into pure JavaScript output. This allows us to incrementally migrate the entire project to TypeScript. I’ve already successfully rewritten several files — it works well.Going forward, I can split the changes into multiple PRs to make review easier.
If there’s anything you’d like me to adjust in this PR, or if you have any feedback, I’d really appreciate your thoughts! 💚
Related: #2777