Skip to content

Commit 33f6961

Browse files
committed
chore: drive internal-mode npm build via Nx configurations
1 parent 5cb7a22 commit 33f6961

6 files changed

Lines changed: 409 additions & 122 deletions

File tree

packages/devextreme/gulpfile.js

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,11 +73,31 @@ gulp.task('check-license-notices', shell.task('pnpm nx run devextreme:verify:lic
7373

7474
gulp.task('state-manager-optimize', shell.task('pnpm nx run devextreme:state-manager:optimize'));
7575

76-
gulp.task('npm', shell.task(
77-
context.uglify
78-
? 'pnpm nx run devextreme:build:npm -c production'
79-
: 'pnpm nx run devextreme:build:npm'
80-
));
76+
function getNpmConfiguration() {
77+
if(context.uglify && env.BUILD_INTERNAL_PACKAGE) {
78+
return 'production-internal';
79+
}
80+
if(env.BUILD_INTERNAL_PACKAGE) {
81+
return 'internal';
82+
}
83+
if(context.uglify && env.BUILD_TEST_INTERNAL_PACKAGE) {
84+
return 'production-test-internal';
85+
}
86+
if(env.BUILD_TEST_INTERNAL_PACKAGE) {
87+
return 'test-internal';
88+
}
89+
if(context.uglify) {
90+
return 'production';
91+
}
92+
return '';
93+
}
94+
95+
gulp.task('npm', shell.task((function() {
96+
const config = getNpmConfiguration();
97+
return config
98+
? `pnpm nx run devextreme:build:npm -c ${config}`
99+
: 'pnpm nx run devextreme:build:npm';
100+
})()));
81101

82102
if(env.TEST_CI) {
83103
console.warn('Using test CI mode!');

packages/devextreme/project.json

Lines changed: 199 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -821,13 +821,20 @@
821821
"outputDir": "./artifacts/npm/devextreme",
822822
"templatesDir": "./build/npm-templates"
823823
},
824+
"configurations": {
825+
"internal": {
826+
"outputDir": "./artifacts/npm/devextreme-internal"
827+
}
828+
},
824829
"inputs": [
825830
"{projectRoot}/js/**/*.d.ts",
826831
"{projectRoot}/build/npm-templates/**/*"
827832
],
828833
"outputs": [
829834
"{projectRoot}/artifacts/npm/devextreme/**/*.d.ts",
830-
"{projectRoot}/artifacts/npm/devextreme/bundles/dx.all.js"
835+
"{projectRoot}/artifacts/npm/devextreme/bundles/dx.all.js",
836+
"{projectRoot}/artifacts/npm/devextreme-internal/**/*.d.ts",
837+
"{projectRoot}/artifacts/npm/devextreme-internal/bundles/dx.all.js"
831838
]
832839
},
833840
"build:npm:dts-bundle": {
@@ -837,13 +844,19 @@
837844
"artifactPath": "./artifacts/ts/dx.all.d.ts",
838845
"packagePath": "./artifacts/npm/devextreme/bundles/dx.all.d.ts"
839846
},
847+
"configurations": {
848+
"internal": {
849+
"packagePath": "./artifacts/npm/devextreme-internal/bundles/dx.all.d.ts"
850+
}
851+
},
840852
"inputs": [
841853
"{projectRoot}/ts/dx.all.d.ts",
842854
"{projectRoot}/ts/aliases.d.ts"
843855
],
844856
"outputs": [
845857
"{projectRoot}/artifacts/ts/dx.all.d.ts",
846-
"{projectRoot}/artifacts/npm/devextreme/bundles/dx.all.d.ts"
858+
"{projectRoot}/artifacts/npm/devextreme/bundles/dx.all.d.ts",
859+
"{projectRoot}/artifacts/npm/devextreme-internal/bundles/dx.all.d.ts"
847860
]
848861
},
849862
"build:npm:dist:package-json": {
@@ -853,11 +866,19 @@
853866
"distDirectory": "./artifacts/npm/devextreme-dist",
854867
"versionFrom": "./package.json"
855868
},
869+
"configurations": {
870+
"internal": {
871+
"distDirectory": "./artifacts/npm/devextreme-dist-internal"
872+
}
873+
},
856874
"inputs": [
857875
"{workspaceRoot}/packages/devextreme-dist/package.json",
858876
"{projectRoot}/package.json"
859877
],
860-
"outputs": ["{projectRoot}/artifacts/npm/devextreme-dist/package.json"]
878+
"outputs": [
879+
"{projectRoot}/artifacts/npm/devextreme-dist/package.json",
880+
"{projectRoot}/artifacts/npm/devextreme-dist-internal/package.json"
881+
]
861882
},
862883
"build:npm:assemble": {
863884
"executor": "devextreme-nx-infra-plugin:npm-assemble",
@@ -869,6 +890,43 @@
869890
"webpackConfig": "./webpack.config.js",
870891
"artifactsDir": "./artifacts",
871892
"outputDir": "./artifacts/npm/devextreme",
893+
"srcExcludes": [
894+
"bundles/*.js",
895+
"cjs/bundles/**/*",
896+
"esm/bundles/**/*",
897+
"bundles/modules/parts/*.js",
898+
"viz/vector_map.utils/*.js",
899+
"viz/docs/*.js"
900+
],
901+
"distExcludes": [
902+
"transpiled**/**/*",
903+
"npm/**/*.*",
904+
"ts/jquery*",
905+
"ts/knockout*",
906+
"ts/globalize*",
907+
"ts/cldr*",
908+
"css/dx-diagram.*",
909+
"css/dx-gantt.*",
910+
"js/knockout*",
911+
"js/cldr/*.*",
912+
"js/cldr*",
913+
"js/globalize/*.*",
914+
"js/globalize*",
915+
"js/dx-exceljs-fork*",
916+
"js/file-saver*",
917+
"js/jquery*",
918+
"js/jspdf*",
919+
"js/jspdf-autotable*",
920+
"js/jszip*",
921+
"js/dx.custom*",
922+
"js/dx.viz*",
923+
"js/dx.web*",
924+
"js/dx-diagram*",
925+
"js/dx-gantt*",
926+
"js/dx-quill*"
927+
],
928+
"nestedPackageJsonExcludes": ["viz/vector_map.utils/**"],
929+
"excludeLicenseValidator": "**/license/license_validation_internal.js",
872930
"metadataFiles": [
873931
{ "from": "../../README.md", "to": "./README.md" },
874932
{ "from": "./build/npm-templates/.npmignore", "to": "./.npmignore" },
@@ -879,6 +937,32 @@
879937
{ "from": "./dist", "to": "./artifacts/npm/devextreme-dist" }
880938
]
881939
},
940+
"configurations": {
941+
"internal": {
942+
"outputDir": "./artifacts/npm/devextreme-internal",
943+
"excludeLicenseValidator": "**/license/license_validation.js",
944+
"renameLicenseValidator": {
945+
"fromGlob": "**/license/license_validation_internal.js",
946+
"toBasename": "license_validation.js"
947+
},
948+
"metadataFiles": [
949+
{ "from": "../../README.md", "to": "./README.md" },
950+
{ "from": "./build/npm-templates/.npmignore", "to": "./.npmignore" },
951+
{ "from": "../devextreme-dist/README.md", "to": "../devextreme-dist-internal/README.md" },
952+
{ "from": "../devextreme-dist/LICENSE.md", "to": "../devextreme-dist-internal/LICENSE.md" }
953+
],
954+
"flatten": [
955+
{ "from": "./dist", "to": "./artifacts/npm/devextreme-dist-internal" }
956+
]
957+
},
958+
"test-internal": {
959+
"excludeLicenseValidator": "**/license/license_validation.js",
960+
"renameLicenseValidator": {
961+
"fromGlob": "**/license/license_validation_internal.js",
962+
"toBasename": "license_validation.js"
963+
}
964+
}
965+
},
882966
"inputs": [
883967
"internalPackageEnv",
884968
"{projectRoot}/artifacts/transpiled-esm-npm/**/*",
@@ -897,7 +981,9 @@
897981
"{projectRoot}/artifacts/npm/devextreme/**/*",
898982
"{projectRoot}/artifacts/npm/devextreme-dist/README.md",
899983
"{projectRoot}/artifacts/npm/devextreme-dist/LICENSE.md",
900-
"{projectRoot}/artifacts/npm/devextreme-dist/**/*"
984+
"{projectRoot}/artifacts/npm/devextreme-dist/**/*",
985+
"{projectRoot}/artifacts/npm/devextreme-internal/**/*",
986+
"{projectRoot}/artifacts/npm/devextreme-dist-internal/**/*"
901987
]
902988
},
903989
"build:npm:scss": {
@@ -906,13 +992,19 @@
906992
"scssPackagePath": "../devextreme-scss",
907993
"outputDir": "./artifacts/npm/devextreme/scss"
908994
},
995+
"configurations": {
996+
"internal": {
997+
"outputDir": "./artifacts/npm/devextreme-internal/scss"
998+
}
999+
},
9091000
"inputs": [
9101001
"{workspaceRoot}/packages/devextreme-scss/scss/**/*",
9111002
"{workspaceRoot}/packages/devextreme-scss/fonts/**/*",
9121003
"{workspaceRoot}/packages/devextreme-scss/icons/**/*"
9131004
],
9141005
"outputs": [
915-
"{projectRoot}/artifacts/npm/devextreme/scss/**/*"
1006+
"{projectRoot}/artifacts/npm/devextreme/scss/**/*",
1007+
"{projectRoot}/artifacts/npm/devextreme-internal/scss/**/*"
9161008
]
9171009
},
9181010
"build:npm:root-package-json": {
@@ -923,10 +1015,19 @@
9231015
"setName": "devextreme",
9241016
"removeFields": ["devDependencies", "publishConfig", "scripts"]
9251017
},
1018+
"configurations": {
1019+
"internal": {
1020+
"distDirectory": "./artifacts/npm/devextreme-internal",
1021+
"setName": "devextreme-internal"
1022+
}
1023+
},
9261024
"inputs": [
9271025
"{projectRoot}/package.json"
9281026
],
929-
"outputs": ["{projectRoot}/artifacts/npm/devextreme/package.json"]
1027+
"outputs": [
1028+
"{projectRoot}/artifacts/npm/devextreme/package.json",
1029+
"{projectRoot}/artifacts/npm/devextreme-internal/package.json"
1030+
]
9301031
},
9311032
"compress:npm-sources": {
9321033
"executor": "devextreme-nx-infra-plugin:compress",
@@ -948,13 +1049,44 @@
9481049
"configurations": {
9491050
"production": {
9501051
"mode": { "name": "beautify" }
1052+
},
1053+
"internal": {
1054+
"files": ["./artifacts/npm/devextreme-internal/**/*.js"],
1055+
"exclude": [
1056+
"./artifacts/npm/devextreme-internal/bundles/*.js",
1057+
"./artifacts/npm/devextreme-internal/cjs/bundles/**",
1058+
"./artifacts/npm/devextreme-internal/esm/bundles/**",
1059+
"./artifacts/npm/devextreme-internal/bundles/modules/parts/*.js",
1060+
"./artifacts/npm/devextreme-internal/viz/vector_map.utils/*.js",
1061+
"./artifacts/npm/devextreme-internal/viz/docs/*.js",
1062+
"./artifacts/npm/devextreme-internal/dist/**",
1063+
"./artifacts/npm/devextreme-internal/bin/**",
1064+
"./artifacts/npm/devextreme-internal/license/**"
1065+
]
1066+
},
1067+
"production-internal": {
1068+
"files": ["./artifacts/npm/devextreme-internal/**/*.js"],
1069+
"exclude": [
1070+
"./artifacts/npm/devextreme-internal/bundles/*.js",
1071+
"./artifacts/npm/devextreme-internal/cjs/bundles/**",
1072+
"./artifacts/npm/devextreme-internal/esm/bundles/**",
1073+
"./artifacts/npm/devextreme-internal/bundles/modules/parts/*.js",
1074+
"./artifacts/npm/devextreme-internal/viz/vector_map.utils/*.js",
1075+
"./artifacts/npm/devextreme-internal/viz/docs/*.js",
1076+
"./artifacts/npm/devextreme-internal/dist/**",
1077+
"./artifacts/npm/devextreme-internal/bin/**",
1078+
"./artifacts/npm/devextreme-internal/license/**"
1079+
],
1080+
"mode": { "name": "beautify" }
9511081
}
9521082
},
9531083
"inputs": [
954-
"{projectRoot}/artifacts/npm/devextreme/**/*.js"
1084+
"{projectRoot}/artifacts/npm/devextreme/**/*.js",
1085+
"{projectRoot}/artifacts/npm/devextreme-internal/**/*.js"
9551086
],
9561087
"outputs": [
957-
"{projectRoot}/artifacts/npm/devextreme/**/*.js"
1088+
"{projectRoot}/artifacts/npm/devextreme/**/*.js",
1089+
"{projectRoot}/artifacts/npm/devextreme-internal/**/*.js"
9581090
]
9591091
},
9601092
"verify:licenses": {
@@ -1151,6 +1283,8 @@
11511283
"outputs": [
11521284
"{projectRoot}/artifacts/npm/devextreme",
11531285
"{projectRoot}/artifacts/npm/devextreme-dist",
1286+
"{projectRoot}/artifacts/npm/devextreme-internal",
1287+
"{projectRoot}/artifacts/npm/devextreme-dist-internal",
11541288
"{projectRoot}/artifacts/ts/dx.all.d.ts"
11551289
],
11561290
"configurations": {
@@ -1165,6 +1299,54 @@
11651299
"pnpm nx run devextreme:verify:public-modules",
11661300
"pnpm nx run devextreme:build:npm:scss"
11671301
]
1302+
},
1303+
"internal": {
1304+
"commands": [
1305+
"pnpm nx run devextreme:build:npm:dts-modules -c internal",
1306+
"pnpm nx run devextreme:build:npm:dts-bundle -c internal",
1307+
"pnpm nx run devextreme:build:npm:dist:package-json -c internal",
1308+
"pnpm nx run devextreme:build:npm:assemble -c internal",
1309+
"pnpm nx run devextreme:build:npm:root-package-json -c internal",
1310+
"pnpm nx run devextreme:compress:npm-sources -c internal",
1311+
"pnpm nx run devextreme:verify:public-modules",
1312+
"pnpm nx run devextreme:build:npm:scss -c internal"
1313+
]
1314+
},
1315+
"production-internal": {
1316+
"commands": [
1317+
"pnpm nx run devextreme:build:npm:dts-modules -c internal",
1318+
"pnpm nx run devextreme:build:npm:dts-bundle -c internal",
1319+
"pnpm nx run devextreme:build:npm:dist:package-json -c internal",
1320+
"pnpm nx run devextreme:build:npm:assemble -c internal",
1321+
"pnpm nx run devextreme:build:npm:root-package-json -c internal",
1322+
"pnpm nx run devextreme:compress:npm-sources -c production-internal",
1323+
"pnpm nx run devextreme:verify:public-modules",
1324+
"pnpm nx run devextreme:build:npm:scss -c internal"
1325+
]
1326+
},
1327+
"test-internal": {
1328+
"commands": [
1329+
"pnpm nx run devextreme:build:npm:dts-modules",
1330+
"pnpm nx run devextreme:build:npm:dts-bundle",
1331+
"pnpm nx run devextreme:build:npm:dist:package-json",
1332+
"pnpm nx run devextreme:build:npm:assemble -c test-internal",
1333+
"pnpm nx run devextreme:build:npm:root-package-json",
1334+
"pnpm nx run devextreme:compress:npm-sources",
1335+
"pnpm nx run devextreme:verify:public-modules",
1336+
"pnpm nx run devextreme:build:npm:scss"
1337+
]
1338+
},
1339+
"production-test-internal": {
1340+
"commands": [
1341+
"pnpm nx run devextreme:build:npm:dts-modules",
1342+
"pnpm nx run devextreme:build:npm:dts-bundle",
1343+
"pnpm nx run devextreme:build:npm:dist:package-json",
1344+
"pnpm nx run devextreme:build:npm:assemble -c test-internal",
1345+
"pnpm nx run devextreme:build:npm:root-package-json",
1346+
"pnpm nx run devextreme:compress:npm-sources -c production",
1347+
"pnpm nx run devextreme:verify:public-modules",
1348+
"pnpm nx run devextreme:build:npm:scss"
1349+
]
11681350
}
11691351
}
11701352
},
@@ -1196,7 +1378,15 @@
11961378
"testing": {
11971379
"env": {
11981380
"BUILD_TEST_INTERNAL_PACKAGE": "true"
1199-
}
1381+
},
1382+
"commands": [
1383+
"pnpm nx clean:artifacts devextreme",
1384+
"pnpm nx build:localization devextreme",
1385+
"pnpm nx build:transpile devextreme",
1386+
"pnpm nx run-many --targets=bundle:debug,bundle:prod,build:vectormap,copy:vendor,build:aspnet,build:declarations --projects=devextreme --parallel",
1387+
"pnpm nx build:npm devextreme -c test-internal",
1388+
"pnpm nx verify:licenses devextreme"
1389+
]
12001390
},
12011391
"production": {
12021392
"commands": [

0 commit comments

Comments
 (0)