/
update-更新所有-npm-依赖包至允许范围内的最新版本.sh
208 lines (126 loc) · 10.2 KB
/
update-更新所有-npm-依赖包至允许范围内的最新版本.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
#!/bin/bash
# 下方这一行的写法专门针对本工具集自身,不适应于其他任何 npm 项。
__wulechuan_temporary_var___source_common_path__='.'
# 在采用本工具集的其他 npm 项目中,均应这样写:
# __wulechuan_temporary_var___source_common_path__='./node_modules/@wulechuan/cli-scripts--npm-project-helpers'
source "${__wulechuan_temporary_var___source_common_path__}/源代码/发布的源代码/bash/吴乐川-针对命令与函数的辅助工具集.sh"
source "${__wulechuan_temporary_var___source_common_path__}/源代码/发布的源代码/bash/吴乐川-数据处理-文本.sh"
source "${__wulechuan_temporary_var___source_common_path__}/源代码/发布的源代码/bash/吴乐川-打印-json.sh"
source "${__wulechuan_temporary_var___source_common_path__}/源代码/发布的源代码/bash/吴乐川-管理某-npm-项目的依赖包等资源.sh"
function 完整流程 {
local BY_DEFAULT__SHOULD_DRY_RUN='false'
local ShouldDryRun
local NpmArguments
local ArgumentConfigsArray=(
# 以下是本函数接受并主动存放在变量中的参数之列表。
# 命令行参数名 | 变量名 | 取值之类型 | 默认值
# ---------------------------------------------------------------------------------------------------------------------------------------------------------------
"--应仅作仿真演练 | ShouldDryRun | 标准类型_布尔 | ${BY_DEFAULT__SHOULD_DRY_RUN}"
"--npm-args | NpmArguments | 标准类型_文本 | " # --foreground-scripts
)
# 以下是本函数接受的,但并不存放在变量中的参数之列表。这些参数的值会直接传递到内层其它函数。
# --在安装诸依赖包之前应先删除旧有的_node_modules_文件夹 标准类型_布尔
# --在安装诸依赖包之前应先删除旧有的_package-lock点json_文件 标准类型_布尔
# ------------- 开始 -------------
local LastTaskReturnCode
Read-吴乐川读取并处理某函数的参数表 --调试功能之级别 0 "$@"
LastTaskReturnCode=$?; if [ $LastTaskReturnCode -ne 0 ]; then return $LastTaskReturnCode; fi
# ────────────────────────────────────────────────────────────────
# 1) 安装【产品级】和【研发级】依赖包。
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# 顺便提醒,虽然一般而言 latest 版本应恰为最高版本,但并不确保。
# ────────────────────────────────────────────────────────────────
# 使用示范:
#
# 注:
# Bash 工具 `Update-吴乐川更新当前_npm_项目的所有依赖包` 的参数 `--内容分割记号` 是可省略的。省略时,采取默认值 |::| 。
# 但本工具集的 JavaScript 工具故意将该参数配置成了 |:| ,而不是默认值 |::| 。此举是作者吴乐川随意为之,无必要性。
#
# Update-吴乐川更新当前_npm_项目的所有依赖包 \
# --某产品级依赖包之版本配置 '@wulechuan/text-basic-typography |::| null' \
# --某产品级依赖包之版本配置 'chalk |::| null' \
# --某产品级依赖包之版本配置 'fs-extra |::| null' \
# --某产品级依赖包之版本配置 'jsonc-parser |::| null' \
# --某研发级依赖包之版本配置 '@wulechuan/cli-scripts--git-push |::| null' \
# --某研发级依赖包之版本配置 'eslint |::| null' \
# --NPM安装依赖包时须额外带上的参数序列="$NpmArguments" \
# --应仅作仿真演练 "$ShouldDryRun"
# 如果 @wulechuan/cli-scripts--npm-project-helpers 工具集随附的 JavaScript 程序运行如期,
# 其将在此处插入当前 npm 项目的【产品级】、【可自由采取其版本】的依赖包的列表。 另,切勿改动该行。该行之部分文字是供 JavaScript 程序识别的特殊记号。
Update-吴乐川更新当前_npm_项目的所有依赖包 \
--某产品级依赖包之版本配置 '@wulechuan/text-basic-typography |::| null' \
--某产品级依赖包之版本配置 'chalk |::| null' \
--某产品级依赖包之版本配置 'fs-extra |::| null' \
--某产品级依赖包之版本配置 'jsonc-parser |::| null' \
--某研发级依赖包之版本配置 '@wulechuan/cli-scripts--git-push |::| null' \
--某研发级依赖包之版本配置 'eslint |::| null' \
--内容分割记号='|:|' \
--NPM安装依赖包时须额外带上的参数序列="$NpmArguments" \
--调试功能之级别 0 \
--应仅作仿真演练 "$ShouldDryRun"
LastTaskReturnCode=$?; if [ $LastTaskReturnCode -ne 0 ]; then return $LastTaskReturnCode; fi
# ────────────────────────────────────────────────────────────────
# 2) 更新与研发相关的数据库。
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# 例如: Browserslist:caniuse-lite
# ────────────────────────────────────────────────────────────────
Write-吴乐川管理某_npm_项目__打印提示语__更新与研发相关的数据库 --应仅作仿真演练 $ShouldDryRun
if true; then
echo '暂无。'
else
# ──────────────────────────────────────────────────────
: # 当本 else 语句块中没有其它语句时,这句必须存在。
# ──────────────────────────────────────────────────────
if false; then
if [ "$ShouldDryRun" == true ]; then
echo -en " \e[0;33m【仿真演练】\e[0;0m\n "
fi
echo 'npx browserslist@latest --update-db'
if [ "$ShouldDryRun" == false ]; then
npx browserslist@latest --update-db
fi
echo
fi
# ──────────────────────────────────────────────────────
fi
Write-吴乐川管理某_npm_项目__打印提示语__更新与研发相关的数据库 --应仅作仿真演练 $ShouldDryRun --系作为该任务之结束提示语
# ────────────────────────────────────────────────────────────────
# 3) 其他交代。
# ────────────────────────────────────────────────────────────────
Write-吴乐川管理某_npm_项目__打印提示语__其他交代 --应仅作仿真演练 $ShouldDryRun
if false; then
echo '暂无。'
else
# ──────────────────────────────────────────────────────
# 此处不妨做些关于当前 npm 项目的必要交代。
# 例如注意事项、关键步骤等等。
# ──────────────────────────────────────────────────────
: # 当本 else 语句块中没有其它语句时,这句必须存在。
# ──────────────────────────────────────────────────────
echo -e "\e[33m以下是一个 JavaScript 对象。\e[0;0m"
echo
echo '{'
Write-吴乐川打印_JSON_键 -Indent 1 '爷爷' -ValueIsObject
Write-吴乐川打印_JSON_键 -Indent 2 '葫芦娃' -ValueIsObject
echo
Write-吴乐川打印_JSON_注释_并换行 -Indent 3 '// 实验证明,截止 2022-05-26 ,'
Write-吴乐川打印_JSON_注释_并换行 -Indent 3 '// 大娃必须是力娃子。'
Write-吴乐川打印_JSON_键 -Indent 3 '大娃'
Write-吴乐川打印_JSON_值_文本型 -IsValueOfLastKey '力娃子'
Write-吴乐川打印_JSON_某字典结束 -Indent 2
Write-吴乐川打印_JSON_某字典结束 -Indent 1
echo '}'
# ──────────────────────────────────────────────────────
fi
Write-吴乐川管理某_npm_项目__打印提示语__其他交代 --应仅作仿真演练 $ShouldDryRun --系作为该任务之结束提示语
}
完整流程 "$@"
__wulechuan_temporary_var___exit_code__exception_code__=$?
if [ $__wulechuan_temporary_var___exit_code__exception_code__ -ne 0 ]; then
echo -e "\e[0;31m──────────────────────── \e[0;0m"
echo -e "\e[0;31m程序异常结束代码: \e[0;33m${__wulechuan_temporary_var___exit_code__exception_code__} \e[0;0m"
echo -e "\e[0;31m──────────────────────── \e[0;0m\n "
fi
unset -f 完整流程
unset __wulechuan_temporary_var___source_common_path__
return $__wulechuan_temporary_var___exit_code__exception_code__