-
Notifications
You must be signed in to change notification settings - Fork 112
/
publish.sh
executable file
·63 lines (52 loc) · 1.38 KB
/
publish.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
# NOTE: 这个脚本仅用于 lerna 发布失败之后,手动发布用
# 正常发布请不要使用这个脚本,使用 CONTRIBUTING.md 里面的说明的发布方式
#
# 用法:
# 发布指定的库 ./publish.sh cli core
# 或直接使用 ./publish.sh 根据提示输入要发布的库
# 发布全部库 ./publish.sh all
# 记录当前目录
CWD=`pwd`
ALL_PACKAGES=`ls packages`
# 优先从命令行读取
SELECTED_PACKAGES=$@
# 如果命令行没有输入
if [[ $SELECTED_PACKAGES == "" ]]
then
echo '请输入要发布的包名,使用空格分隔,如要发布所有库,请输入 all: '
read SELECTED_PACKAGES
fi
# 如果选择所有
if [[ $SELECTED_PACKAGES == "all" ]]
then
SELECTED_PACKAGES=$ALL_PACKAGES
fi
# 未输入
if [[ $SELECTED_PACKAGES == "" ]]
then
echo "未选择任何 package,请检查输入"
fi
# 发布已选择的 packages
for package in $SELECTED_PACKAGES
do
# echo $package
# 忽略 example 相关库
if [[ $package == "examples" ]]
then
echo "$package 为 示例库,跳过"
else
packageDir="$CWD/packages/$package"
# 检查目录是否存在
if [[ -d $packageDir ]]
then
echo "\n================== 发布 $package 中 ==================\n"
# 进入库中
cd $packageDir
# 发布
npm publish
else
echo "$package 不存在,已跳过,请检查输入"
fi
echo "\n"
fi
done