kn-cli 1.0.83 → 1.0.85

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.
Files changed (40) hide show
  1. package/build/dev.sh +12 -0
  2. package/build/shellUtil.sh +40 -3
  3. package/package.json +1 -1
  4. package/readme.md +20 -18
  5. package/src/build.js +3 -0
  6. package/src/getTools.js +14 -3
  7. package/templates/template_admin/cli.config.js +4 -0
  8. package/templates/template_admin/dev.sh +3 -63
  9. package/templates/template_admin/frontend_build.sh +2 -44
  10. package/templates/template_admin/init.sh +3 -12
  11. package/templates/template_admin/report.sh +3 -46
  12. package/templates/template_admin/shellUtil.sh +110 -0
  13. package/templates/template_admin/versionPublish.sh +1 -12
  14. package/templates/template_app/cli.config.js +4 -0
  15. package/templates/template_app/dev.sh +3 -63
  16. package/templates/template_app/frontend_build.sh +3 -71
  17. package/templates/template_app/report.sh +3 -45
  18. package/templates/template_app/shellUtil.sh +110 -0
  19. package/templates/template_app/versionPublish.sh +1 -13
  20. package/templates/template_oa/cli.config.js +4 -0
  21. package/templates/template_oa/dev.sh +3 -63
  22. package/templates/template_oa/frontend_build.sh +3 -46
  23. package/templates/template_oa/init.sh +1 -12
  24. package/templates/template_oa/report.sh +3 -44
  25. package/templates/template_oa/shellUtil.sh +110 -0
  26. package/templates/template_oa/versionPublish.sh +1 -12
  27. package/templates/template_oa_jwt/cli.config.js +1 -1
  28. package/templates/template_oa_jwt/dev.sh +3 -64
  29. package/templates/template_oa_jwt/frontend_build.sh +3 -45
  30. package/templates/template_oa_jwt/init.sh +2 -12
  31. package/templates/template_oa_jwt/report.sh +3 -45
  32. package/templates/template_oa_jwt/shellUtil.sh +110 -0
  33. package/templates/template_oa_jwt/versionPublish.sh +1 -13
  34. package/templates/template_offcial/cli.config.js +4 -0
  35. package/templates/template_offcial/dev.sh +3 -63
  36. package/templates/template_offcial/frontend_build.sh +3 -45
  37. package/templates/template_offcial/init.sh +1 -12
  38. package/templates/template_offcial/report.sh +3 -45
  39. package/templates/template_offcial/shellUtil.sh +110 -0
  40. package/templates/template_offcial/versionPublish.sh +1 -13
package/build/dev.sh CHANGED
@@ -1,3 +1,15 @@
1
1
  export build_type=dev
2
+
3
+
4
+ if [ ! -n "$build_log_level" ]
5
+ then
6
+ if [ $build_env != 'prod' ]
7
+ then
8
+ export build_log_level=all
9
+ else
10
+ export build_log_level=clear
11
+ fi
12
+ fi
13
+
2
14
  # 如果 export dev_mode=watch 则启动webpack -w模式而非webpack-dev-server
3
15
  . ./start.sh
@@ -5,31 +5,68 @@ checkResult(){
5
5
  ret=$?
6
6
  if [ $ret != 0 ]
7
7
  then
8
- printf "[$1] \e[40;31m 执行失败 \e[0m\n"
8
+ printf "\e[40;31m [$1] 执行失败 \e[0m\n"
9
9
  exit 2
10
10
  return 0
11
11
  else
12
- printf "[$1] \e[40;32m 执行成功\e[0m \n"
12
+ printf "\e[40;32m [$1] 执行成功\e[0m \n"
13
13
  return 0
14
14
  fi
15
15
  }
16
16
 
17
17
 
18
18
 
19
+ checkKnCli(){
20
+ # 方案一:始终将kn-cli保持为最新版本
21
+ # npm i kn-cli -g
22
+ # return 0
23
+
24
+ # 方案二:保持kn-cli为固定某个版本
25
+ # npm i kn-cli@1.0.26 -g
26
+ # return 0
27
+
28
+ # 方案三:检测未安装时或版本不为最新版本时更新
29
+ if ! [ -x "$(command -v kn-cli)" ]
30
+ then
31
+ echo "安装kn-cli"
32
+ npm i kn-cli -g
33
+ return 0
34
+ fi
35
+
36
+ for line in `npm view kn-cli version`
37
+ do
38
+ for line2 in `kn-cli -v`
39
+ do
40
+ if [ $line != $line2 ]
41
+ then
42
+ echo "升级kn-cli"
43
+ npm upgrade kn-cli -g
44
+ return 0
45
+ fi
46
+ done
47
+ done
48
+ return 0
49
+ }
50
+
51
+
19
52
  showLog() {
20
53
  local text="$1"
21
54
  local color="$2"
22
55
  local color_code=""
23
56
  case "$color" in
57
+ "white") color_code="";;
24
58
  "red") color_code="\e[40;31m";;
25
59
  "green") color_code="\e[40;32m";;
26
60
  "blue") color_code="\e[40;34m";;
27
61
  "yellow") color_code="\e[40;33m";;
28
- *) color_code="";;
62
+ *) color_code="\e[40;30m";;
29
63
  esac
30
64
  printf "%b\n" "${color_code}${text}\e[0m"
31
65
  }
32
66
 
67
+ showNormal(){
68
+ showLog "$1" "white"
69
+ }
33
70
  showSuccess() {
34
71
  showLog "$1" "green"
35
72
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kn-cli",
3
- "version": "1.0.83",
3
+ "version": "1.0.85",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
package/readme.md CHANGED
@@ -3,14 +3,13 @@
3
3
 
4
4
  # 快速开始
5
5
  0. node使用16.18.0
6
- 1. 安装: npm i kn-cli -g
7
- 2. 创建项目: kn-cli --create
8
- 3. 调试项目: kn-cli --dev
6
+ 1. 安装: `npm i kn-cli -g`
7
+ 2. 创建项目: `kn-cli --create`
8
+ 3. 调试项目: `sh dev.sh`
9
9
  * 当`export dev_mode=watch`时,将不会独立启动http服务,而是直接将编译后资源输出到文件夹内并监听源代码的变化后重新编译
10
- 4. 编译项目: kn-cli --build
10
+ 4. 编译项目: `sh build.sh`或`sh frontend_build.sh`
11
11
  5. 当项目中需要添加第三方npm包时,务必使用--save参数`npm i 包名 --save`
12
- 6. 包模块分析: kn-cli --report
13
-
12
+ 6. 包模块分析:`sh report.sh`
14
13
 
15
14
  > 项目创建后,记得执行sh init.sh 以激活git分支提交日志
16
15
 
@@ -24,7 +23,7 @@
24
23
  # cli 其它常用方法
25
24
  1. 查看版本号: `kn-cli -v`
26
25
  2. 创建辅助工具:`kn-cli --tool`
27
- 目前辅助工具有:图片压缩、word转html、iconfont、资源引用检查
26
+ 目前辅助工具有:图片压缩、word转html、iconfont、资源引用检查、docker容器内运行
28
27
 
29
28
 
30
29
  # cli.config.js - 构建配置文件
@@ -90,32 +89,32 @@ module.exports = {
90
89
 
91
90
 
92
91
  # 环境变量
93
- build_env
92
+ **build_env**
94
93
  可选值:localdebug|dev|prod
95
94
  控制构建模式,localdebug本地调试、dev测试环境、prod生产
96
95
 
97
-
98
- build_log_level
99
- 可选值:clear|all
96
+ **build_log_level**
97
+ 可选值:clear|all
100
98
  控制输出的日志类型,如果不手动接入的话,prod模式下为简洁模式,开发模式下为全量输出
101
99
 
102
-
103
- noSkipNpmInstall
100
+ **noSkipNpmInstall**
104
101
  可选值:1|0
102
+ 默认值:1
105
103
  是否跳过npm install以增加启动速度,prod模式下必然为1,其它模式下根据用户选择
106
104
 
107
- mock
105
+ **mock**
108
106
  可选值:1|0
107
+ 默认值:0
109
108
  是否打开mock
110
109
 
111
-
112
- registryType
110
+ **registryType**
113
111
  可选值:taobao|zheda|huawei|空值
112
+ 默认值:空值
114
113
  npm镜像源
115
114
 
116
-
117
- dev_mode
115
+ **dev_mode**
118
116
  可选值:watch|空值
117
+ 默认值:空值
119
118
  调试模式是用的watch文件监听,还是webpack-dev-server监听模式
120
119
 
121
120
  report
@@ -133,6 +132,9 @@ report
133
132
 
134
133
 
135
134
  # 更新日志
135
+ * 1.0.85
136
+ cli工具内增加docker环境工具,用于将当前项目直接在docker内运行
137
+
136
138
  * 1.0.82
137
139
  增加环境变量:build_log_level ,用于控制输出的日志类型
138
140
 
package/src/build.js CHANGED
@@ -363,6 +363,9 @@ module.exports= async (options={})=> {
363
363
  try{
364
364
  await tasks.run();
365
365
  }catch(err){
366
+ if(err.message.indexOf('执行build异常')>=0){
367
+ return 0;
368
+ }
366
369
  console.log(chalk.red.bold(err.message));
367
370
  return 0;
368
371
  }
package/src/getTools.js CHANGED
@@ -5,6 +5,9 @@ const {Listr} = require('listr2');
5
5
  const {TaskNodeVersion,copyDir}= require('./utils');
6
6
  const inquirer = require('inquirer');
7
7
  const ROOT=path.resolve(__dirname,"../");
8
+ const fs = require('fs');
9
+ const shelljs = require('shelljs');
10
+
8
11
 
9
12
  /**
10
13
  * 创建工具
@@ -24,7 +27,8 @@ module.exports=async ()=> {
24
27
  '图片压缩',
25
28
  'word转html',
26
29
  'iconFont图标字体',
27
- '资源引用检查'
30
+ '资源引用检查',
31
+ 'docker'
28
32
  ],
29
33
  default:''
30
34
  },
@@ -35,7 +39,7 @@ module.exports=async ()=> {
35
39
  case 'iconFont图标字体':{templateName='iconfont'}break;
36
40
  case 'word转html':{templateName='word2html'}break;
37
41
  case '资源引用检查':{templateName='fileCase'}break;
38
-
42
+ case 'docker':{templateName='docker'}break;
39
43
  }
40
44
  }
41
45
 
@@ -45,7 +49,14 @@ module.exports=async ()=> {
45
49
  },
46
50
  {
47
51
  title: "工具创建中",
48
- task: () => copyDir(path.resolve(templatesDir,templateName),path.resolve(sourceDir,templateName))
52
+ task: () => {
53
+ let toolsDir= path.resolve(sourceDir,'tools')
54
+ const exists = fs.existsSync(toolsDir);
55
+ if(exists==false){
56
+ shelljs.mkdir(toolsDir);
57
+ }
58
+ copyDir(path.resolve(templatesDir,templateName),path.resolve(toolsDir,templateName))
59
+ }
49
60
  },
50
61
  ]);
51
62
  try{
@@ -16,6 +16,10 @@ module.exports = {
16
16
  }
17
17
  return "local";
18
18
  },
19
+ devServer:{
20
+ host:'0.0.0.0',//指定调试地址IP
21
+ port:8080,
22
+ }
19
23
  // 自定义多入口
20
24
  // entry:{
21
25
  // 'home/index': 'src/jsx/home/index.jsx',
@@ -3,69 +3,9 @@ then
3
3
  . ${HOME}/.nvm/nvm.sh
4
4
  fi
5
5
 
6
- node_version="v16.18.0"
7
-
8
- checkNode(){
9
- for line in `node -v`
10
- do
11
- if [ $line != $node_version ]
12
- then
13
- echo "change Node from $line to $node_version"
14
- nvm use $node_version
15
- ret=$?
16
- if [ $ret != 0 ]
17
- then
18
- echo "Please run nvm install $node_version"
19
- exit 3
20
- else
21
- return 0
22
- fi
23
- else
24
- return 0
25
- fi
26
- done
27
- }
28
-
29
- checkResult(){
30
- ret=$?
31
- if [ $ret != 0 ]
32
- then
33
- echo "[$1]执行失败"
34
- exit 2
35
- return 0
36
- else
37
- echo "[$1]执行成功"
38
- return 0
39
- fi
40
- }
41
-
42
-
43
-
44
-
45
- # 智能检测并安装/升级CLI的版本
46
- checkKnCli(){
47
- # dev只需要保持安装了就行,版本通过开发自己控制
48
- if ! [ -x "$(command -v kn-cli)" ]
49
- then
50
- echo "安装kn-cli"
51
- npm i kn-cli -g
52
- return 0
53
- fi
54
- # for line in `npm view kn-cli version`
55
- # do
56
- # for line2 in `kn-cli -v`
57
- # do
58
- # if [ $line != $line2 ]
59
- # then
60
- # echo "升级kn-cli"
61
- # npm upgrade kn-cli -g
62
- # return 0
63
- # fi
64
- # done
65
- # done
66
- # return 0
67
- }
6
+ . ./shellUtil.sh
68
7
 
8
+ node_version="v16.18.0"
69
9
 
70
10
 
71
11
  build(){
@@ -82,7 +22,7 @@ build(){
82
22
  checkResult "kn-cli --dev"
83
23
  }
84
24
 
85
- checkNode
25
+ checkNode "${node_version}"
86
26
  checkResult "检查node"
87
27
 
88
28
  build
@@ -2,55 +2,13 @@ if [ -d "${HOME}/.nvm/" ]
2
2
  then
3
3
  . ${HOME}/.nvm/nvm.sh
4
4
  fi
5
+ . ./shellUtil.sh
5
6
 
6
7
  export mock=0
7
8
  export noSkipNpmInstall=1
8
9
  node_version="v16.18.0"
9
10
 
10
- checkNode(){
11
- for line in `node -v`
12
- do
13
- if [ $line != $node_version ]
14
- then
15
- echo "change Node from $line to $node_version"
16
- nvm use $node_version
17
- ret=$?
18
- if [ $ret != 0 ]
19
- then
20
- echo "Please run nvm install $node_version"
21
- exit 3
22
- else
23
- return 0
24
- fi
25
- else
26
- return 0
27
- fi
28
- done
29
- }
30
-
31
-
32
- checkKnCli(){
33
- if ! [ -x "$(command -v kn-cli)" ]
34
- then
35
- npm i kn-cli -g
36
- return 0
37
- fi
38
- return 0
39
- }
40
-
41
11
 
42
- checkResult(){
43
- ret=$?
44
- if [ $ret != 0 ]
45
- then
46
- echo "[$1]执行失败"
47
- exit 2
48
- return 0
49
- else
50
- echo "[$1]执行成功"
51
- return 0
52
- fi
53
- }
54
12
 
55
13
  build(){
56
14
  npm config delete registry -g
@@ -76,7 +34,7 @@ build(){
76
34
  checkResult "复制favicon"
77
35
  }
78
36
 
79
- checkNode
37
+ checkNode "${node_version}"
80
38
  checkResult "检查node"
81
39
 
82
40
 
@@ -1,15 +1,6 @@
1
- checkResult(){
2
- ret=$?
3
- if [ $ret != 0 ]
4
- then
5
- echo "[$1]执行失败"
6
- exit 2
7
- return 0
8
- else
9
- echo "[$1]执行成功"
10
- return 0
11
- fi
12
- }
1
+
2
+ . ./shellUtil.sh
3
+
13
4
 
14
5
  echo "安装git提交钩子脚本 cp prepare-commit-msg ./.git/hooks/prepare-commit-msg"
15
6
  ls -A ./.git/
@@ -3,52 +3,9 @@ then
3
3
  . ${HOME}/.nvm/nvm.sh
4
4
  fi
5
5
 
6
- node_version="v16.18.0"
7
-
8
- checkNode(){
9
- for line in `node -v`
10
- do
11
- if [ $line != $node_version ]
12
- then
13
- echo "change Node from $line to $node_version"
14
- nvm use $node_version
15
- ret=$?
16
- if [ $ret != 0 ]
17
- then
18
- echo "Please run nvm install $node_version"
19
- exit 3
20
- else
21
- return 0
22
- fi
23
- else
24
- return 0
25
- fi
26
- done
27
- }
28
-
29
- checkResult(){
30
- ret=$?
31
- if [ $ret != 0 ]
32
- then
33
- echo "[$1]执行失败"
34
- exit 2
35
- return 0
36
- else
37
- echo "[$1]执行成功"
38
- return 0
39
- fi
40
- }
41
-
42
-
43
- checkKnCli(){
44
- if ! [ -x "$(command -v kn-cli)" ]
45
- then
46
- npm i kn-cli -g
47
- return 0
48
- fi
49
- return 0
50
- }
6
+ . ./shellUtil.sh
51
7
 
8
+ node_version="v16.18.0"
52
9
 
53
10
  build(){
54
11
  npm config delete registry -g
@@ -61,7 +18,7 @@ build(){
61
18
  checkResult "kn-cli --report"
62
19
  }
63
20
 
64
- checkNode
21
+ checkNode "${node_version}"
65
22
  checkResult "检查node"
66
23
 
67
24
  build
@@ -0,0 +1,110 @@
1
+
2
+
3
+
4
+ checkResult(){
5
+ ret=$?
6
+ if [ $ret != 0 ]
7
+ then
8
+ printf "\e[40;31m [$1] 执行失败 \e[0m\n"
9
+ exit 2
10
+ return 0
11
+ else
12
+ printf "\e[40;32m [$1] 执行成功\e[0m \n"
13
+ return 0
14
+ fi
15
+ }
16
+
17
+
18
+
19
+ checkKnCli(){
20
+ # 方案一:始终将kn-cli保持为最新版本
21
+ # npm i kn-cli -g
22
+ # return 0
23
+
24
+ # 方案二:保持kn-cli为固定某个版本
25
+ # npm i kn-cli@1.0.26 -g
26
+ # return 0
27
+
28
+ # 方案三:检测未安装时或版本不为最新版本时更新
29
+ if ! [ -x "$(command -v kn-cli)" ]
30
+ then
31
+ echo "安装kn-cli"
32
+ npm i kn-cli -g
33
+ return 0
34
+ fi
35
+
36
+ for line in `npm view kn-cli version`
37
+ do
38
+ for line2 in `kn-cli -v`
39
+ do
40
+ if [ $line != $line2 ]
41
+ then
42
+ echo "升级kn-cli"
43
+ npm upgrade kn-cli -g
44
+ return 0
45
+ fi
46
+ done
47
+ done
48
+ return 0
49
+ }
50
+
51
+
52
+ showLog() {
53
+ local text="$1"
54
+ local color="$2"
55
+ local color_code=""
56
+ case "$color" in
57
+ "white") color_code="";;
58
+ "red") color_code="\e[40;31m";;
59
+ "green") color_code="\e[40;32m";;
60
+ "blue") color_code="\e[40;34m";;
61
+ "yellow") color_code="\e[40;33m";;
62
+ *) color_code="\e[40;30m";;
63
+ esac
64
+ printf "%b\n" "${color_code}${text}\e[0m"
65
+ }
66
+
67
+ showNormal(){
68
+ showLog "$1" "white"
69
+ }
70
+ showSuccess() {
71
+ showLog "$1" "green"
72
+ }
73
+
74
+ showError() {
75
+ showLog "$1" "red"
76
+ }
77
+ showWarn() {
78
+ showLog "$1" "yellow"
79
+ }
80
+
81
+ showInput(){
82
+ local text="$1"
83
+ printf "%b" "\e[40;35m${text}\e[0m" >&2
84
+ }
85
+
86
+
87
+
88
+
89
+ checkNode(){
90
+ local node_version="$1"
91
+
92
+ for line in `node -v`
93
+ do
94
+ if [ $line != $node_version ]
95
+ then
96
+ showWarn "change Node from ${line} to ${node_version}"
97
+ nvm use $node_version
98
+ ret=$?
99
+ if [ $ret != 0 ]
100
+ then
101
+ showError "Please run nvm install ${node_version}"
102
+ exit 3
103
+ else
104
+ return 0
105
+ fi
106
+ else
107
+ return 0
108
+ fi
109
+ done
110
+ }
@@ -1,16 +1,5 @@
1
1
 
2
- checkResult(){
3
- ret=$?
4
- if [ $ret != 0 ]
5
- then
6
- echo "[$1]执行失败"
7
- exit 2
8
- return 0
9
- else
10
- echo "[$1]执行成功"
11
- return 0
12
- fi
13
- }
2
+ . ./shellUtil.sh
14
3
 
15
4
  # version=$(grep -m1 '"version":' package.json | awk -F'"' '{print $4}')
16
5
  # checkResult "获取当前版本号"
@@ -9,6 +9,10 @@ module.exports = {
9
9
  rules:{
10
10
  compileNpmPackage:['kn-hooks'],//需要参与编译的npm包
11
11
  },
12
+ devServer:{
13
+ host:'0.0.0.0',//指定调试地址IP
14
+ port:8080,
15
+ }
12
16
  // 自定义多入口
13
17
  // entry:{
14
18
  // 'home/index': 'src/jsx/home/index.jsx',
@@ -3,69 +3,9 @@ then
3
3
  . ${HOME}/.nvm/nvm.sh
4
4
  fi
5
5
 
6
- node_version="v16.18.0"
7
-
8
- checkNode(){
9
- for line in `node -v`
10
- do
11
- if [ $line != $node_version ]
12
- then
13
- echo "change Node from $line to $node_version"
14
- nvm use $node_version
15
- ret=$?
16
- if [ $ret != 0 ]
17
- then
18
- echo "Please run nvm install $node_version"
19
- exit 3
20
- else
21
- return 0
22
- fi
23
- else
24
- return 0
25
- fi
26
- done
27
- }
28
-
29
- checkResult(){
30
- ret=$?
31
- if [ $ret != 0 ]
32
- then
33
- echo "[$1]执行失败"
34
- exit 2
35
- return 0
36
- else
37
- echo "[$1]执行成功"
38
- return 0
39
- fi
40
- }
41
-
42
-
43
-
44
-
45
- # 智能检测并安装/升级CLI的版本
46
- checkKnCli(){
47
- # dev只需要保持安装了就行,版本通过开发自己控制
48
- if ! [ -x "$(command -v kn-cli)" ]
49
- then
50
- echo "安装kn-cli"
51
- npm i kn-cli -g
52
- return 0
53
- fi
54
- # for line in `npm view kn-cli version`
55
- # do
56
- # for line2 in `kn-cli -v`
57
- # do
58
- # if [ $line != $line2 ]
59
- # then
60
- # echo "升级kn-cli"
61
- # npm upgrade kn-cli -g
62
- # return 0
63
- # fi
64
- # done
65
- # done
66
- # return 0
67
- }
6
+ . ./shellUtil.sh
68
7
 
8
+ node_version="v16.18.0"
69
9
 
70
10
 
71
11
  build(){
@@ -82,7 +22,7 @@ build(){
82
22
  checkResult "kn-cli --dev"
83
23
  }
84
24
 
85
- checkNode
25
+ checkNode "${node_version}"
86
26
  checkResult "检查node"
87
27
 
88
28
  build