Skip to content

Instantly share code, notes, and snippets.

@ClausClaus
Last active August 22, 2019 10:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ClausClaus/fe9933024a05cee735c92f1736fd8caa to your computer and use it in GitHub Desktop.
Save ClausClaus/fe9933024a05cee735c92f1736fd8caa to your computer and use it in GitHub Desktop.
一键发布npm包的脚本
#!/usr/bin/env bash
# 1. 版本号每次自增;
# 2. 区分测试和生产 package.json.test, package.json.prod
# 3. 发布到生产前会二次确认
srcName='package.json.test'
if [[ $1 == "prod" ]]
then
srcName='package.json.prod'
read -p "Are you sure to publish to PRODUCTION? [Y/N]" -n 1 -r
echo ""
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
exit
fi
fi
# 版本号末尾加1
versionLine=`cat ${srcName} | grep version | head -1`
version=`echo "${versionLine}" | awk -F: '{print $2}' | sed 's/[",]//g' | tr -d '[[:space:]]'`
lastItem=`echo "${version}" | awk -F. '{print $3}'`
prefixItem=`echo "${version}" | awk -F. '{print $1"."$2}'`
lastItemPlus=$((${lastItem} + 1))
versionPlus=${prefixItem}.${lastItemPlus}
versionPlusLine=`echo "${versionLine}" | sed "s/${version}/${versionPlus}/"`
sed -i '' -e "s/${versionLine}/${versionPlusLine}/" ${srcName}
mv ${srcName} package.json
tnpm install
webpack --config webpack.config.js
tnpm login
tnpm publish
mv package.json ${srcName}
rm -rf ./node_modules
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment