mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-06 17:28:29 +08:00
chore: core npm prepare handling
This commit is contained in:
2
.github/workflows/npm_release_core.yml
vendored
2
.github/workflows/npm_release_core.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
|||||||
|
|
||||||
# TODO: build ui-mobile-base first
|
# TODO: build ui-mobile-base first
|
||||||
- name: Build @nativescript/core
|
- name: Build @nativescript/core
|
||||||
run: npx nx run core:build
|
run: npx nx run core:build.npm
|
||||||
|
|
||||||
- name: Publish @nativescript/core
|
- name: Publish @nativescript/core
|
||||||
working-directory: dist/packages/core
|
working-directory: dist/packages/core
|
||||||
|
@ -62,6 +62,19 @@
|
|||||||
},
|
},
|
||||||
"dependsOn": ["^build"]
|
"dependsOn": ["^build"]
|
||||||
},
|
},
|
||||||
|
"build.npm": {
|
||||||
|
"executor": "nx:run-commands",
|
||||||
|
"options": {
|
||||||
|
"commands": ["node tools/scripts/build-finish.ts core"],
|
||||||
|
"parallel": false
|
||||||
|
},
|
||||||
|
"outputs": ["{workspaceRoot}/dist/packages/core"],
|
||||||
|
"dependsOn": [
|
||||||
|
{
|
||||||
|
"target": "build"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"test": {
|
"test": {
|
||||||
"executor": "@nx/vite:test",
|
"executor": "@nx/vite:test",
|
||||||
"outputs": ["{options.reportsDirectory}"],
|
"outputs": ["{options.reportsDirectory}"],
|
||||||
|
30
tools/scripts/build-finish.ts
Normal file
30
tools/scripts/build-finish.ts
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
const path = require('path');
|
||||||
|
const fs = require('fs-extra');
|
||||||
|
const { serializeJson, parseJson } = require('@nx/devkit');
|
||||||
|
|
||||||
|
const rootDir = path.resolve(path.join(__dirname, '..', '..'));
|
||||||
|
|
||||||
|
const cmdArgs = process.argv.slice(2);
|
||||||
|
const packageName = cmdArgs[0];
|
||||||
|
const publish = cmdArgs[1] === 'publish';
|
||||||
|
|
||||||
|
const packagePath = path.join('packages', packageName, 'package.json');
|
||||||
|
const packageJson = JSON.parse(fs.readFileSync(packagePath));
|
||||||
|
const npmPackageName = packageJson.name;
|
||||||
|
console.log(`Building ${npmPackageName}...${publish ? 'and publishing.' : ''}`);
|
||||||
|
|
||||||
|
function cleanPackage() {
|
||||||
|
// helps remove unwanted properties which may be added by other tooling
|
||||||
|
const packageJsonPath = path.resolve(rootDir, 'dist', 'packages', packageName, 'package.json');
|
||||||
|
let packageJson = fs.readFileSync(packageJsonPath, { encoding: 'utf-8' });
|
||||||
|
if (packageJson) {
|
||||||
|
packageJson = parseJson(packageJson);
|
||||||
|
// we don't need module or type properties at the moment
|
||||||
|
delete packageJson['module'];
|
||||||
|
delete packageJson['type'];
|
||||||
|
fs.writeFileSync(packageJsonPath, serializeJson(packageJson));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanPackage();
|
||||||
|
console.log(`${npmPackageName} ready to publish.`);
|
Reference in New Issue
Block a user