diff --git a/npm/ng-packs/package.json b/npm/ng-packs/package.json index a856335418..4b780b3ec5 100644 --- a/npm/ng-packs/package.json +++ b/npm/ng-packs/package.json @@ -1,16 +1,14 @@ { "scripts": { - "start": "ng serve dev-app", "ng": "ng", - "test": "ng test --watchAll --runInBand", - "symlink": "symlink", "abpng": "abpng", + "symlink": "symlink", + "start": "ng serve dev-app", + "test": "ng test --watchAll --runInBand", "commit": "git-cz", - "lint": "ng lint --fix", + "lint": "ng lint", "scripts:build": "cd scripts && npm install && npm run build", - "ci": "yarn ci:build:sync && yarn ci:build:async && yarn ci:test && yarn ng lint", - "ci:build:sync": "symlink copy --angular --no-watch --sync --packages @abp/ng.core,@abp/ng.theme.shared,@abp/ng.feature-management,@abp/ng.permission-management,@abp/ng.account.config,@abp/ng.identity.config,@abp/ng.setting-management.config,@abp/ng.tenant-management.config", - "ci:build:async": "symlink copy --angular --no-watch --all-packages --excluded-packages @abp/ng.core,@abp/ng.theme.shared,@abp/ng.feature-management,@abp/ng.permission-management,@abp/ng.account.config,@abp/ng.identity.config,@abp/ng.setting-management.config,@abp/ng.tenant-management.config", + "ci": "yarn scripts:build --noCommit && yarn ci:test && yarn ng lint", "ci:test": "ng test --coverage=false" }, "devDependencies": { diff --git a/npm/ng-packs/scripts/build.js b/npm/ng-packs/scripts/build.js index c5daec1dd8..3c7a8774d6 100644 --- a/npm/ng-packs/scripts/build.js +++ b/npm/ng-packs/scripts/build.js @@ -1,6 +1,7 @@ // ESM syntax is supported. import execa from 'execa'; import fse from 'fs-extra'; +import program from 'commander'; (async () => { const { projects } = await fse.readJSON('../angular.json'); @@ -8,13 +9,23 @@ import fse from 'fs-extra'; const packageJson = await fse.readJSON('../package.json'); + program.option('-c, --noCommit', 'skip commit process', false); + + program.parse(process.argv); + let npmPackageNames = []; projectNames.forEach(project => { // do not convert to async - const { name, dependencies = {}, peerDependencies = {} } = fse.readJSONSync(`../packages/${project}/package.json`); + const { name, dependencies = {}, peerDependencies = {} } = fse.readJSONSync( + `../packages/${project}/package.json`, + ); npmPackageNames.push(name); - packageJson.devDependencies = { ...packageJson.devDependencies, ...dependencies, ...peerDependencies }; + packageJson.devDependencies = { + ...packageJson.devDependencies, + ...dependencies, + ...peerDependencies, + }; }); await fse.writeJSON('../package.json', packageJson, { spaces: 2 }); @@ -28,16 +39,38 @@ import fse from 'fs-extra'; console.error(error.stderr); } - npmPackageNames.forEach(name => { - // do not convert to async - execa.sync('yarn', ['symlink', 'copy', '--angular', '--packages', name, '--no-watch', '--sync-build'], { - stdout: 'inherit', - cwd: '../', - }); - }); + execa.sync( + 'yarn', + [ + 'symlink', + 'copy', + '--angular', + '--no-watch', + '--sync', + '--packages', + '@abp/ng.core,@abp/ng.theme.shared,@abp/ng.feature-management,@abp/ng.permission-management,@abp/ng.account.config,@abp/ng.identity.config,@abp/ng.setting-management.config,@abp/ng.tenant-management.config', + ], + { stdout: 'inherit', cwd: '../' }, + ); - await execa('git', ['add', '../dist/*', '../package.json'], { stdout: 'inherit' }); - await execa('git', ['commit', '-m', 'Build ng packages', '--no-verify'], { stdout: 'inherit' }); + await execa( + 'yarn', + [ + 'symlink', + 'copy', + '--angular', + '--no-watch', + '--all-packages', + '--excluded-packages', + '@abp/ng.core,@abp/ng.theme.shared,@abp/ng.feature-management,@abp/ng.permission-management,@abp/ng.account.config,@abp/ng.identity.config,@abp/ng.setting-management.config,@abp/ng.tenant-management.config', + ], + { stdout: 'inherit', cwd: '../' }, + ); + + if (!program.noCommit) { + await execa('git', ['add', '../dist/*', '../package.json'], { stdout: 'inherit' }); + await execa('git', ['commit', '-m', 'Build ng packages', '--no-verify'], { stdout: 'inherit' }); + } process.exit(0); })(); diff --git a/npm/ng-packs/scripts/package-lock.json b/npm/ng-packs/scripts/package-lock.json index 69f316cca1..36bf73d5b9 100644 --- a/npm/ng-packs/scripts/package-lock.json +++ b/npm/ng-packs/scripts/package-lock.json @@ -438,6 +438,11 @@ "object-visit": "^1.0.0" } }, + "commander": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.0.1.tgz", + "integrity": "sha512-IPF4ouhCP+qdlcmCedhxX4xiGBPyigb8v5NeUp+0LyhwLgxMqyp3S0vl7TAPfS/hiP7FC3caI/PB9lTmP8r1NA==" + }, "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", diff --git a/npm/ng-packs/scripts/package.json b/npm/ng-packs/scripts/package.json index def0417cb8..5e070a2c2c 100644 --- a/npm/ng-packs/scripts/package.json +++ b/npm/ng-packs/scripts/package.json @@ -13,6 +13,7 @@ "license": "ISC", "dependencies": { "babel-preset-node6": "^11.0.0", + "commander": "^4.0.1", "esm": "^3.2.25", "execa": "^2.0.3", "fs-extra": "^8.1.0",