mirror of
https://github.com/mathuo/dockview
synced 2025-07-19 08:26:01 +00:00
feat: npm experimental publish script
This commit is contained in:
parent
fe3d0b23bd
commit
15ccdfa3c0
1
.gitignore
vendored
1
.gitignore
vendored
@ -11,3 +11,4 @@ storybook-static/
|
|||||||
.rollup.cache/
|
.rollup.cache/
|
||||||
test-report.xml
|
test-report.xml
|
||||||
*.code-workspace
|
*.code-workspace
|
||||||
|
yarn-error.log
|
||||||
|
@ -25,7 +25,8 @@
|
|||||||
"prepack": "npm run rebuild && npm run test",
|
"prepack": "npm run rebuild && npm run test",
|
||||||
"rebuild": "npm run clean && npm run build",
|
"rebuild": "npm run clean && npm run build",
|
||||||
"test": "cross-env ../../node_modules/.bin/jest --selectProjects dockview",
|
"test": "cross-env ../../node_modules/.bin/jest --selectProjects dockview",
|
||||||
"test:cov": "cross-env ../../node_modules/.bin/jest --selectProjects dockview --coverage"
|
"test:cov": "cross-env ../../node_modules/.bin/jest --selectProjects dockview --coverage",
|
||||||
|
"dev-publish": "node ./scripts/publishExperimental.js"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"dist",
|
"dist",
|
||||||
|
63
packages/dockview/scripts/publishExperimental.js
Normal file
63
packages/dockview/scripts/publishExperimental.js
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
const cp = require('child_process');
|
||||||
|
const fs = require('fs-extra');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
const rootDir = path.join(__dirname, '..');
|
||||||
|
const publishDir = path.join(rootDir, '__publish__');
|
||||||
|
|
||||||
|
cp.execSync('npm run clean', { cwd: rootDir, stdio: 'inherit' });
|
||||||
|
cp.execSync('npm run test', { cwd: __dirname, stdio: 'inherit' });
|
||||||
|
cp.execSync('npm run build', { cwd: rootDir, stdio: 'inherit' });
|
||||||
|
|
||||||
|
if (fs.existsSync(publishDir)) {
|
||||||
|
fs.removeSync(publishDir);
|
||||||
|
}
|
||||||
|
fs.mkdirSync(publishDir);
|
||||||
|
|
||||||
|
if (!fs.existsSync(path.join(publishDir, 'dist'))) {
|
||||||
|
fs.mkdirSync(path.join(publishDir, 'dist'));
|
||||||
|
}
|
||||||
|
|
||||||
|
const package = JSON.parse(
|
||||||
|
fs.readFileSync(path.join(rootDir, 'package.json')).toString()
|
||||||
|
);
|
||||||
|
|
||||||
|
for (const file of package.files) {
|
||||||
|
fs.copySync(path.join(rootDir, file), path.join(publishDir, file));
|
||||||
|
}
|
||||||
|
|
||||||
|
const result = cp
|
||||||
|
.execSync('git rev-parse --short HEAD', {
|
||||||
|
cwd: rootDir,
|
||||||
|
})
|
||||||
|
.toString()
|
||||||
|
.replace(/\n/g, '');
|
||||||
|
|
||||||
|
function formatDate() {
|
||||||
|
const date = new Date();
|
||||||
|
|
||||||
|
function pad(value) {
|
||||||
|
if (value.toString().length === 1) {
|
||||||
|
return `0${value}`;
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
return `${date.getFullYear()}${pad(date.getMonth() + 1)}${pad(
|
||||||
|
date.getDate()
|
||||||
|
)}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
package.version = `0.0.0-experimental-${result}-${formatDate()}`;
|
||||||
|
package.scripts = {};
|
||||||
|
|
||||||
|
fs.writeFileSync(
|
||||||
|
path.join(publishDir, 'package.json'),
|
||||||
|
JSON.stringify(package, null, 4)
|
||||||
|
);
|
||||||
|
|
||||||
|
const command = 'npm publish --tag experimental';
|
||||||
|
|
||||||
|
cp.execSync(command, { cwd: publishDir, stdio: 'inherit' });
|
||||||
|
|
||||||
|
fs.removeSync(publishDir);
|
Loading…
x
Reference in New Issue
Block a user