-
Notifications
You must be signed in to change notification settings - Fork 658
chore(devextreme-vue): replace gulp by nx #31570
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
chore(devextreme-vue): replace gulp by nx #31570
Conversation
565ea92 to
6eefa93
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This pull request introduces a new nx-infra-plugin package to replace Gulp-based build scripts with Nx executors for DevExtreme wrapper packages (React and Vue). The changes modernize the build infrastructure by:
- Creating a custom Nx plugin with 8 executors for common build tasks
- Migrating devextreme-react and devextreme-vue packages from Gulp to Nx executors
- Removing Gulp dependencies and associated build configuration files
- Standardizing build processes across wrapper packages
Key Changes
- New nx-infra-plugin package with executors for component generation, TypeScript compilation, file operations, and npm packaging
- Migration of devextreme-react and devextreme-vue from Gulp-based builds to declarative Nx project.json configurations
- Removal of legacy build files (gulpfile.js, build.config.js) and Gulp dependencies
Reviewed Changes
Copilot reviewed 60 out of 61 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/scripts/build-nx-plugin.ts | Bootstrap script to compile the nx-infra-plugin before first use |
| packages/nx-infra-plugin/src/executors/* | 8 executor implementations with schema definitions and E2E tests |
| packages/nx-infra-plugin/src/utils/* | Shared utilities for path resolution, file operations, and error handling |
| packages/nx-infra-plugin/package.json | Package configuration with dependencies (glob, rimraf) and build scripts |
| packages/devextreme-react/project.json | Migrated from Gulp to Nx executors with 10+ build targets |
| packages/devextreme-vue/project.json | Migrated from Gulp to Nx executors with similar target structure |
| packages/devextreme-react/package.json | Removed Gulp dependencies, added nx-infra-plugin workspace dependency |
| packages/devextreme-vue/package.json | Removed Gulp dependencies, updated scripts to use Nx |
| pnpm-lock.yaml | Updated lockfile reflecting dependency changes |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
cbf65cf to
0166819
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 17 out of 20 changed files in this pull request and generated 4 comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (1)
packages/nx-infra-plugin/src/executors/generate-components/executor.ts:265
- Corrected spelling of 'excplicitIndexInImports' to 'explicitIndexInImports'.
packages/nx-infra-plugin/src/executors/generate-components/framework-handlers.ts
Show resolved
Hide resolved
003993f to
2333f0e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 18 out of 21 changed files in this pull request and generated 2 comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
dfdf940 to
acf645c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 24 out of 27 changed files in this pull request and generated 3 comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (1)
packages/nx-infra-plugin/src/executors/generate-components/executor.ts:265
- Spelling error: "excplicitIndexInImports" should be "explicitIndexInImports" (missing 'i'). This matches the same typo in framework-handlers.ts and needs to be corrected for consistency.
packages/nx-infra-plugin/src/executors/generate-components/framework-handlers.ts
Show resolved
Hide resolved
acf645c to
272581c
Compare
272581c to
0258ad9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 24 out of 27 changed files in this pull request and generated 2 comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
packages/nx-infra-plugin/src/executors/generate-components/framework-handlers.ts
Show resolved
Hide resolved
0258ad9 to
24f87c2
Compare
24f87c2 to
c78faee
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 24 out of 27 changed files in this pull request and generated no new comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (2)
packages/nx-infra-plugin/scripts/build.ts:206
- The change from
process.exit(0)toprocess.exit(1)on build failure is a breaking change. The old error handling strategy allowed the process to continue (exit code 0) with the expectation that "The plugin will be built on first use by NX". However, now the postinstall script in package.json will fail on error, which could break package installation. Consider whether this is the intended behavior or if the postinstall script should handle failures gracefully (e.g., using|| trueor proper error handling).
packages/nx-infra-plugin/src/executors/generate-components/executor.ts:265 - Typo in property name:
excplicitIndexInImportsshould beexplicitIndexInImports(missing 'i'). This inconsistency will cause runtime errors as the schema and project.json useexplicitIndexInImportsbut the code uses the misspelled version.
Related to #31460, it should be merged first.