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 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
  #### 发布范围:全量
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+
3
+ const BuilderCCSDK = require("../src/builderccsdk.js");
4
+
5
+ const builder = new BuilderCCSDK();
6
+
7
+ builder.init();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloudcc-cli",
3
- "version": "0.3.2",
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 update -g cloudcc-cli`)
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 update -g cloudcc-cli'));
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');