Skip to content

Commit 2a319d5

Browse files
authored
build: 增加发布npm包的脚本 (#300)
1 parent 1a1e619 commit 2a319d5

File tree

4 files changed

+51
-5
lines changed

4 files changed

+51
-5
lines changed

commitlint.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ module.exports = {
1010
'subject-case': [0, 'never'],
1111
'header-max-length': [2, 'always', 88],
1212
},
13-
};
13+
};
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
const path = require('path');
2+
const fsExtra = require('fs-extra');
3+
const { omit } = require('lodash');
4+
const shell = require('shelljs');
5+
6+
const outputDir = path.resolve(__dirname, '../../build');
7+
8+
const package = require('../../package.json');
9+
10+
const getVersion = (version) => {
11+
if (version) {
12+
return version;
13+
} else {
14+
const versionNums = package.version.split('.');
15+
return versionNums.map((num, index) => index === versionNums.length - 1 ? +num + 1 : num).join('.');
16+
}
17+
};
18+
19+
const createPackageJson = async (version) => {
20+
package.version = getVersion(version);
21+
const fileStr = JSON.stringify(omit(package, 'scripts', 'devDependencies'), null, 2);
22+
await fsExtra.outputFile(path.resolve(outputDir, `package.json`), fileStr, 'utf-8');
23+
};
24+
25+
exports.release = async ({ version }) => {
26+
await createPackageJson(version);
27+
shell.sed('-i', 'workspace:', '', path.resolve(outputDir, 'package.json'));
28+
shell.cp('-R', path.resolve(__dirname, '../../../../README.md'), outputDir);
29+
shell.cd(outputDir);
30+
shell.mkdir('-p', 'theme');
31+
shell.cp('-R', path.resolve(__dirname, '../../devui/theme/theme.scss'), path.resolve(outputDir, 'theme'));
32+
// shell.exec('npm publish');
33+
};

packages/devui-vue/devui-cli/index.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const { create, validateCreateType } = require('./commands/create');
44
const { build } = require('./commands/build');
55
const { generateTheme } = require('./commands/generate-theme');
66
const { generateDts } = require('./commands/generate-dts');
7+
const { release } = require('./commands/release');
78
const { VERSION, CREATE_SUPPORT_TYPES } = require('./shared/constant');
89

910
const program = new Command();
@@ -33,4 +34,10 @@ program
3334
.description('生成ts类型文件')
3435
.action(generateDts);
3536

37+
program
38+
.command('release')
39+
.option('-v --version <version>', '版本号')
40+
.description('发布npm包')
41+
.action(release);
42+
3643
program.parse().version(VERSION);

packages/devui-vue/package.json

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vue-devui",
3-
"version": "0.0.1",
3+
"version": "1.0.0-rc.0",
44
"license": "MIT",
55
"description": "DevUI components based on Vite and Vue3",
66
"keywords": [
@@ -15,23 +15,29 @@
1515
"jsx",
1616
"devui"
1717
],
18+
"homepage": "https://vue-devui.github.io/",
19+
"repository": {
20+
"type": "git",
21+
"url": "[email protected]:DevCloudFE/vue-devui.git"
22+
},
1823
"main": "vue-devui.umd.js",
1924
"module": "vue-devui.es.js",
2025
"style": "style.css",
2126
"scripts": {
2227
"dev": "pnpm generate:theme && vitepress dev docs",
2328
"build": "pnpm generate:theme && node --max-old-space-size=4096 node_modules/vitepress/bin/vitepress.js build docs && cp public/* docs/.vitepress/dist/assets",
24-
"build:lib": "pnpm predev && pnpm build:components && pnpm changelog && pnpm copy",
29+
"build:lib": "pnpm predev && pnpm build:components && pnpm changelog && pnpm release",
2530
"test": "jest --config jest.config.js",
2631
"build:components": "node ./devui-cli/index.js build",
2732
"generate:theme": "node ./devui-cli/index.js generate:theme",
2833
"generate:dts": "node ./devui-cli/index.js generate:dts",
29-
"copy": "cp package.json build && cp ../../README.md build && cd build && mkdir theme && cd ../ && cp devui/theme/theme.scss build/theme",
34+
"release": "node ./devui-cli/index.js release",
35+
"cli": "node ./devui-cli/index.js",
3036
"cli:create": "node ./devui-cli/index.js create -t component",
3137
"predev": "node ./devui-cli/index.js create -t vue-devui --ignore-parse-error",
3238
"prebuild": "node ./devui-cli/index.js create -t vue-devui --ignore-parse-error",
3339
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",
34-
"cli": "devui"
40+
"devui-cli": "devui"
3541
},
3642
"dependencies": {
3743
"@devui-design/icons": "^1.3.0",

0 commit comments

Comments
 (0)