chore(devextreme): migrate compression-pipes.js#33434
chore(devextreme): migrate compression-pipes.js#33434chaosmirage wants to merge 13 commits into26_1from
Conversation
15fcc9c to
4dd4115
Compare
There was a problem hiding this comment.
Pull request overview
This PR migrates DevExtreme’s legacy Gulp-based compression pipeline (compression-pipes.js) to Nx executors in devextreme-nx-infra-plugin, consolidating compression/normalization behavior and reducing Gulp-specific dependencies in the DevExtreme package build.
Changes:
- Reworked the
compressexecutor API to supportminify | beautify | strip-debug | normalize, object-form mode options (e.g.,eulaUrl,trailingNewline), glob expansion, and excludes; added E2E coverage. - Extended the
bundleexecutor with an optionalsourceMapflag to controleval-source-mapin debug builds; added E2E coverage. - Updated
packages/devextremebuild orchestration (project targets + gulp tasks) to use Nx executors for bundling, compression, ASP.NET artifact generation, and vendor copying; removed unused Gulp compression deps.
Reviewed changes
Copilot reviewed 21 out of 22 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| pnpm-lock.yaml | Removes lock entries for dropped Gulp compression dependencies. |
| packages/nx-infra-plugin/src/utils/common.ts | Extracts containsGlobPattern for reuse across executors. |
| packages/nx-infra-plugin/src/executors/copy-files/executor.ts | Uses shared containsGlobPattern helper. |
| packages/nx-infra-plugin/src/executors/concatenate-files/executor.ts | Uses shared containsGlobPattern helper. |
| packages/nx-infra-plugin/src/executors/compress/schema.ts | Updates compress executor typing (new modes, object-form mode, excludes). |
| packages/nx-infra-plugin/src/executors/compress/schema.json | Updates compress executor schema accordingly. |
| packages/nx-infra-plugin/src/executors/compress/executor.ts | Implements new compress behavior (mode resolution, glob expansion, excludes, normalization). |
| packages/nx-infra-plugin/src/executors/compress/executor.e2e.spec.ts | Adds E2E tests for new compress modes/options and file expansion/exclude behavior. |
| packages/nx-infra-plugin/src/executors/bundle/schema.ts | Adds sourceMap?: boolean. |
| packages/nx-infra-plugin/src/executors/bundle/schema.json | Documents sourceMap option and default. |
| packages/nx-infra-plugin/src/executors/bundle/executor.ts | Conditionally applies eval-source-map based on sourceMap. |
| packages/nx-infra-plugin/src/executors/bundle/executor.e2e.spec.ts | Adds E2E test asserting eval-source-map omission when sourceMap=false. |
| packages/devextreme/project.json | Rewires bundle/compress/copy-vendor/aspnet targets to Nx executors and new compress modes. |
| packages/devextreme/package.json | Drops gulp-jsbeautifier and gulp-uglify-es dependencies. |
| packages/devextreme/gulpfile.js | Removes old Gulp task module requires; adds Nx-backed aspnet/vendor tasks. |
| packages/devextreme/build/gulp/vendor.js | Removes legacy vendor-copy gulp implementation. |
| packages/devextreme/build/gulp/ts.js | Replaces in-pipe debug stripping with Nx compress:ts-modules. |
| packages/devextreme/build/gulp/transpile.js | Replaces compression-pipes debug removal with gulp-replace regex. |
| packages/devextreme/build/gulp/npm.js | Defers normalization/beautify to Nx compress:npm-sources. |
| packages/devextreme/build/gulp/js-bundles.js | Replaces prod/debug bundle build tasks with Nx bundle targets. |
| packages/devextreme/build/gulp/compression-pipes.js | Removes legacy Gulp compression pipes implementation. |
| packages/devextreme/build/gulp/aspnet.js | Removes legacy ASP.NET gulp implementation. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
82338ad to
4c53cce
Compare
4c53cce to
58e0b40
Compare
There was a problem hiding this comment.
Pull request overview
Migrates DevExtreme’s legacy Gulp-based compression/build steps (notably compression-pipes.js, aspnet/vendor tasks, and bundle post-processing) to Nx-based executors in nx-infra-plugin, modernizing the pipeline and adding more explicit/typed compression modes.
Changes:
- Replace Gulp “compression pipes” with an Nx
compressexecutor supportingminify,beautify,strip-debug, andnormalizemodes (plus glob expansion + excludes). - Add optional
sourceMapsupport to the Nxbundleexecutor and wire it intopackages/devextreme/project.jsonbuild targets. - Remove obsolete Gulp tasks/files (aspnet/vendor/compression-pipes) and update DevExtreme build scripts/targets accordingly; bump Nx to 22.7.0 and disable Nx analytics.
Reviewed changes
Copilot reviewed 24 out of 25 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| pnpm-lock.yaml | Lockfile update reflecting Nx upgrade and dependency graph changes. |
| packages/nx-infra-plugin/src/utils/file-operations.ts | Switch EOL normalization/trailing-newline helpers to use os.EOL. |
| packages/nx-infra-plugin/src/utils/common.ts | Add shared containsGlobPattern helper. |
| packages/nx-infra-plugin/src/executors/copy-files/executor.ts | Reuse shared containsGlobPattern helper. |
| packages/nx-infra-plugin/src/executors/concatenate-files/executor.ts | Reuse shared containsGlobPattern helper. |
| packages/nx-infra-plugin/src/executors/compress/schema.ts | Expand compress mode typing to support mode objects + excludes. |
| packages/nx-infra-plugin/src/executors/compress/schema.json | Update schema to match new mode variants and exclude. |
| packages/nx-infra-plugin/src/executors/compress/executor.ts | Implement new compress strategies, glob expansion, and exclude filtering. |
| packages/nx-infra-plugin/src/executors/compress/executor.e2e.spec.ts | Update/add E2E coverage for new compress modes, glob expansion, excludes, trailing newline options. |
| packages/nx-infra-plugin/src/executors/bundle/schema.ts | Add sourceMap?: boolean option. |
| packages/nx-infra-plugin/src/executors/bundle/schema.json | Document sourceMap option for debug mode. |
| packages/nx-infra-plugin/src/executors/bundle/executor.ts | Conditionally enable eval-source-map based on sourceMap. |
| packages/nx-infra-plugin/src/executors/bundle/executor.e2e.spec.ts | Add E2E coverage for sourceMap: false behavior. |
| packages/devextreme/project.json | Rewire devextreme build steps to use Nx bundle/compress/copy-files flows; add new targets and outputs. |
| packages/devextreme/package.json | Remove Gulp-only compression dependencies (gulp-jsbeautifier, gulp-uglify-es). |
| packages/devextreme/gulpfile.js | Replace aspnet/vendor tasks with Nx-backed shell tasks. |
| packages/devextreme/build/gulp/vendor.js | Remove legacy vendor copy/compress Gulp implementation. |
| packages/devextreme/build/gulp/ts.js | Replace inline debug stripping with Nx compress:ts-modules post-step. |
| packages/devextreme/build/gulp/transpile.js | Inline debug stripping via gulp-replace instead of compression-pipes. |
| packages/devextreme/build/gulp/npm.js | Replace Gulp beautify step with Nx compress:npm-sources. |
| packages/devextreme/build/gulp/js-bundles.js | Replace Gulp bundle+compress flows with Nx bundle:* + compress:* targets. |
| packages/devextreme/build/gulp/compression-pipes.js | Remove legacy compression pipe implementation. |
| packages/devextreme/build/gulp/aspnet.js | Remove legacy aspnet build task implementation. |
| package.json | Bump Nx-related dependencies to 22.7.0. |
| nx.json | Disable Nx analytics. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
No description provided.