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
|
||||
- name: Build @nativescript/core
|
||||
run: npx nx run core:build
|
||||
run: npx nx run core:build.npm
|
||||
|
||||
- name: Publish @nativescript/core
|
||||
working-directory: dist/packages/core
|
||||
|
@ -62,6 +62,19 @@
|
||||
},
|
||||
"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": {
|
||||
"executor": "@nx/vite:test",
|
||||
"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