mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-15 01:03:03 +08:00

Issue number: Internal --------- <!-- Please do not submit updates to dependencies unless it fixes an issue. --> <!-- Please try to limit your pull request to one type (bugfix, feature, etc). Submit multiple pull requests if needed. --> ## What is the current behavior? <!-- Please describe the current behavior that you are modifying. --> In v3.2.46 [vue was updated](https://github.com/vuejs/core/pull/3969) to add support for a generic type argument to the `Plugin` type. In https://github.com/ionic-team/ionic-framework/pull/29637 Ionic's Vue plugin was updated to use the generic, but the`@ionic/vue` project is currently installing v3.2.37. This results in a local type checking error and build error: ``` (!) Plugin typescript: @rollup/plugin-typescript TS2315: Type 'Plugin_2' is not generic. src/ionic-vue.ts: (24:24) 24 export const IonicVue: Plugin<[IonicConfig?]> = { ``` ## What is the new behavior? <!-- Please describe the behavior or changes that are being added by this PR. --> - Bumps and pins the dev dependency of `vue` to `3.2.46`. There are other breaking changes that Vue has shipped in minor/patch cycles that prevents from updating to the latest. - Resolves the type checking error locally during build of the`@ionic/vue` package ## Does this introduce a breaking change? - [ ] Yes - [x] No <!-- If this introduces a breaking change: 1. Describe the impact and migration path for existing applications below. 2. Update the BREAKING.md file with the breaking change. 3. Add "BREAKING CHANGE: [...]" to the commit description when merging. See https://github.com/ionic-team/ionic-framework/blob/main/docs/CONTRIBUTING.md#footer for more information. --> ## Other information <!-- Any other information that is important to this PR such as screenshots of how the component looks before and after the change. --> Validation steps: 1. Checkout the branch 2. Build `core/` 3. In `packages/vue`, install latest pinned dependencies with `npm ci` 4. Sync the changes to the `vue` package with `npm run sync` 5. Open `/packages/vue/src/ionic-vue.ts` 6. Observe: No type errors on L24 7. Run `npm run build` 8. Observe: No build errors
@ionic/vue
Ionic Framework integration for Vue 3 apps.
Building
- Install dependencies in
@ionic/core
:
cd core && npm install
- Build
@ionic/core
. This will generate Vue component bindings in thepackages/vue
directory:
npm run build
- Install dependencies in
@ionic/vue
:
cd packages/vue && npm install
- Build
@ionic/vue
:
npm run build
- Install dependencies in
@ionic/vue-router
:
cd packages/vue-router && npm install
- Build
@ionic/vue-router
:
npm run build
Tests
- E2E Tests are found in the
packages/vue/test/base/tests
directory and use Cypress. - When making changes to
@ionic/vue
or@ionic/vue-router
you can runnpm run sync
in the test-app directory to ensure that the test application is using your built changes. Be sure to build in thevue
andvue-router
directories first. - Tests can be run in headless mode by running
npm run cypress
. - If you want to open the Cypress test runner, you can run
node_modules/.bin/cypress open
. - Bug fix and feature PRs should have new tests verifying the PR functionality.
Contributing
See our Contributing Guide.
Need Help?
Post your question on the Ionic Forum.