cloudcc-cli 0.3.2 → 0.3.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/bin/buildccsdk.js +7 -0
- package/package.json +3 -2
- package/src/builderccsdk.js +152 -0
- package/src/publish.js +4 -5
package/README.md
CHANGED
|
@@ -2,6 +2,36 @@
|
|
|
2
2
|
* git push origin --tags
|
|
3
3
|
* 发布包:npm publish --registry http://registry.npmjs.org
|
|
4
4
|
|
|
5
|
+
# ReleaseV0.3.6
|
|
6
|
+
#### 发布日期:2021-9-26
|
|
7
|
+
#### 发布范围:全量
|
|
8
|
+
#### 发布内容
|
|
9
|
+
* 功能迭代:更新获取tag信息,先更新本地tag数据
|
|
10
|
+
|
|
11
|
+
# ReleaseV0.3.5
|
|
12
|
+
#### 发布日期:2021-9-24
|
|
13
|
+
#### 发布范围:全量
|
|
14
|
+
#### 发布内容
|
|
15
|
+
* 功能迭代:添加cc-sdk打包自动化打包工具
|
|
16
|
+
|
|
17
|
+
# ReleaseV0.3.4
|
|
18
|
+
#### 发布日期:2021-9-14
|
|
19
|
+
#### 发布范围:全量
|
|
20
|
+
#### 发布内容
|
|
21
|
+
* 功能迭代:升级改为install
|
|
22
|
+
|
|
23
|
+
# ReleaseV0.3.3
|
|
24
|
+
#### 发布日期:2021-9-14
|
|
25
|
+
#### 发布范围:全量
|
|
26
|
+
#### 发布内容
|
|
27
|
+
* 功能迭代:修复Bug
|
|
28
|
+
|
|
29
|
+
# ReleaseV0.3.2
|
|
30
|
+
#### 发布日期:2021-9-14
|
|
31
|
+
#### 发布范围:全量
|
|
32
|
+
#### 发布内容
|
|
33
|
+
* 功能迭代:修复Bug
|
|
34
|
+
|
|
5
35
|
# ReleaseV0.3.1
|
|
6
36
|
#### 发布日期:2021-9-14
|
|
7
37
|
#### 发布范围:全量
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "cloudcc-cli",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.6",
|
|
4
4
|
"description": "cloudcc-cli",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cloudcc",
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
"cloudccCreate": "bin/create.js",
|
|
14
14
|
"cloudccServe": "bin/serve.js",
|
|
15
15
|
"cloudccBuild": "bin/build.js",
|
|
16
|
-
"cloudccPublic": "bin/publish.js"
|
|
16
|
+
"cloudccPublic": "bin/publish.js",
|
|
17
|
+
"cloudccBuildCCSDK": "bin/buildccsdk.js"
|
|
17
18
|
},
|
|
18
19
|
"scripts": {
|
|
19
20
|
"publish-lib": "npm publish --registry http://registry.npmjs.org"
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
const { execSync } = require('child_process');
|
|
2
|
+
const { post } = require('../utils/http');
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require("path")
|
|
5
|
+
const chalk = require("chalk")
|
|
6
|
+
const inquirer = require("inquirer")
|
|
7
|
+
class Builder {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.options = {
|
|
10
|
+
// 开发配置信息
|
|
11
|
+
devConsoleConfig: {
|
|
12
|
+
},
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
async init() {
|
|
16
|
+
this.options.devConsoleConfig = this.getPackageJson();
|
|
17
|
+
// 获得用户输入
|
|
18
|
+
let answers = await this.ask();
|
|
19
|
+
if (answers.types.length == 0) {
|
|
20
|
+
console.log();
|
|
21
|
+
console.error(chalk.red(`请选择一个有效的发布版本!`));
|
|
22
|
+
console.log();
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// 获得vue内容
|
|
26
|
+
let obj = this.getSDKName(answers.buildDirName);
|
|
27
|
+
obj.types = answers.types;
|
|
28
|
+
this.build(obj);
|
|
29
|
+
await this.upload(obj)
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 命令行交互
|
|
33
|
+
* @returns 结果
|
|
34
|
+
*/
|
|
35
|
+
ask() {
|
|
36
|
+
const prompt = [{
|
|
37
|
+
type: 'checkbox',
|
|
38
|
+
message: '请选择发布版本:',
|
|
39
|
+
name: 'types',
|
|
40
|
+
choices: [
|
|
41
|
+
{ name: "测试环境-Dev", value: "dev" },
|
|
42
|
+
{ name: "uat环境-Beta", value: "beta" },
|
|
43
|
+
{ name: "公司环境-GA", value: "ga" },
|
|
44
|
+
{ name: "客户环境-Release", value: "release" },
|
|
45
|
+
],
|
|
46
|
+
}, {
|
|
47
|
+
type: "input",
|
|
48
|
+
name: "buildDirName",
|
|
49
|
+
message: "请输入需要编译的目录名称,如Detail:",
|
|
50
|
+
}];
|
|
51
|
+
return inquirer.prompt(prompt)
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* 获得用户信息
|
|
55
|
+
* @returns 配置信息
|
|
56
|
+
*/
|
|
57
|
+
getPackageJson() {
|
|
58
|
+
const packageJson = JSON.parse(fs.readFileSync("package.json", 'utf8'));
|
|
59
|
+
return packageJson.devConsoleConfig; // cloudcc-plugin 中的 devConsoleConfig
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* 请求用户token
|
|
63
|
+
* @param {用户信息} devConsoleConfig
|
|
64
|
+
* @returns token
|
|
65
|
+
*/
|
|
66
|
+
async getToken(devConsoleConfig) {
|
|
67
|
+
let res = await post(this.options.devConsoleConfig.baseUrl + "/sysconfig/auth/pc/1.0/post/tokenInfo", devConsoleConfig);
|
|
68
|
+
if (res.returnCode == 200) {
|
|
69
|
+
return res.data.accessToken;
|
|
70
|
+
} else {
|
|
71
|
+
console.error(chalk.red(`登录失败`, JSON.stringify(res)));
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* 获得sdk名字
|
|
77
|
+
*/
|
|
78
|
+
getSDKName(buildFileName) {
|
|
79
|
+
let vueContent = fs.readFileSync(path.join("packages", buildFileName, "src", "index.vue"), 'utf8');
|
|
80
|
+
|
|
81
|
+
let sdkName = "cc-" + vueContent.split("\"cc-")[1].split("\"")[0]
|
|
82
|
+
|
|
83
|
+
return { sdkName, path: path.join("packages", buildFileName) }
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* 编译文件,将vue编译为js文件
|
|
87
|
+
* @param {编译对象信息} obj
|
|
88
|
+
*/
|
|
89
|
+
build(obj) {
|
|
90
|
+
console.log(chalk.green('编译中,请稍后...'));
|
|
91
|
+
let { stdout, stderr, error } = execSync(`npx vue-cli-service build --target lib --name ${obj.sdkName} --dest ${path.join(obj.path, "lib")} ${path.join(obj.path, "index.js")}`);
|
|
92
|
+
if (null == error) {
|
|
93
|
+
console.log(chalk.green('编译成功!'));
|
|
94
|
+
} else {
|
|
95
|
+
console.log(chalk.red('编译失败:', error));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* 将文件上传
|
|
100
|
+
*/
|
|
101
|
+
async upload(obj) {
|
|
102
|
+
console.log(chalk.green('发布中,请稍后...'));
|
|
103
|
+
let jsContent = "";
|
|
104
|
+
try {
|
|
105
|
+
jsContent = fs.readFileSync(path.join(obj.path, "lib", obj.sdkName + ".umd.min.js"), 'utf8')
|
|
106
|
+
} catch (err) {
|
|
107
|
+
console.error(err)
|
|
108
|
+
}
|
|
109
|
+
let body = {
|
|
110
|
+
fileInfo: []
|
|
111
|
+
};
|
|
112
|
+
obj.types.map((type) => {
|
|
113
|
+
body.fileInfo.push(
|
|
114
|
+
{
|
|
115
|
+
"fileName": type + "/" + obj.sdkName + ".umd.min.js",
|
|
116
|
+
"fileContent": jsContent,
|
|
117
|
+
"bucketName": "cc-sdk",
|
|
118
|
+
}
|
|
119
|
+
)
|
|
120
|
+
})
|
|
121
|
+
let res = await post(this.options.devConsoleConfig.baseUrl + "/devconsole/cdn/uploadFile",
|
|
122
|
+
body);
|
|
123
|
+
if (res.returnCode == 200) {
|
|
124
|
+
console.error(chalk.green(`发布成功!`));
|
|
125
|
+
console.log();
|
|
126
|
+
} else {
|
|
127
|
+
console.error(chalk.red(`发布失败: ${res.returnInfo}`));
|
|
128
|
+
console.log();
|
|
129
|
+
}
|
|
130
|
+
return res;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
/**
|
|
136
|
+
* 过滤出min.js文件
|
|
137
|
+
* @returns 过滤结果
|
|
138
|
+
*/
|
|
139
|
+
filterFile() {
|
|
140
|
+
const jsPath = "build";
|
|
141
|
+
let jsPaths = [];
|
|
142
|
+
if (jsPath) {
|
|
143
|
+
jsPaths = fs.readdirSync(jsPath).filter((f) => {
|
|
144
|
+
return f.endsWith('umd.min.js');
|
|
145
|
+
}).map((item) => {
|
|
146
|
+
return path.join(jsPath, item);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
return jsPaths;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
module.exports = Builder;
|
package/src/publish.js
CHANGED
|
@@ -16,7 +16,7 @@ class Publish {
|
|
|
16
16
|
let update = await this.update()
|
|
17
17
|
if ("Yes" == update.update) {
|
|
18
18
|
console.log(chalk.green("升级中,请稍后..."));
|
|
19
|
-
exec(`npm
|
|
19
|
+
exec(`npm install -g cloudcc-cli`)
|
|
20
20
|
console.log(chalk.green("升级完成!请重新运行"));
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
@@ -88,7 +88,7 @@ class Publish {
|
|
|
88
88
|
console.log();
|
|
89
89
|
console.log(chalk.green("Cloudcc-cli发现新版本!"));
|
|
90
90
|
console.log(chalk.green("当前版本:v" + config.version + "->" + "最新版本:v" + onlineVersion));
|
|
91
|
-
console.log(chalk.green('请升级:npm
|
|
91
|
+
console.log(chalk.green('请升级:npm install -g cloudcc-cli'));
|
|
92
92
|
console.log();
|
|
93
93
|
return true;
|
|
94
94
|
}
|
|
@@ -100,6 +100,8 @@ class Publish {
|
|
|
100
100
|
*/
|
|
101
101
|
getTagName(type) {
|
|
102
102
|
return type.map((item) => {
|
|
103
|
+
// 更新本地tag
|
|
104
|
+
exec("git fetch --tags -f")
|
|
103
105
|
let version = exec(`git tag --list ${item}-V* --sort -version:refname`)
|
|
104
106
|
version = version.toString("utf8").trim();
|
|
105
107
|
if (version) {
|
|
@@ -130,9 +132,6 @@ class Publish {
|
|
|
130
132
|
*/
|
|
131
133
|
pushCode(types, versions) {
|
|
132
134
|
try {
|
|
133
|
-
// 拉取命令
|
|
134
|
-
exec('git pull');
|
|
135
|
-
|
|
136
135
|
console.log(chalk.green('开始编译,请稍后...'));
|
|
137
136
|
// 打包命令
|
|
138
137
|
exec('npx vue-cli-service build');
|