Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,8 @@
"publish:beta": "npm publish --tag beta",
"prepare": "husky && npm run generate:file && npm run generate:file:taro && npm run generate:file:taro:pages",
"prepublishOnly": "node scripts/prepublish.js",
"postpublish": "node scripts/postpublish.js"
"postpublish": "node scripts/postpublish.js",
"upgradeTaro": "pnpm --dir ./packages/nutui-taro-demo upgradeTaro"
},
"lint-staged": {
"*.{scss,md}": "prettier --write",
Expand Down
3 changes: 2 additions & 1 deletion packages/nutui-taro-demo/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@
"dev:rn:jmapp": "VITE_APP_PROJECT_ID=jmapp npm run build:rn -- --watch",
"dev:qq:jmapp": "VITE_APP_PROJECT_ID=jmapp npm run build:qq -- --watch",
"dev:jd:jmapp": "VITE_APP_PROJECT_ID=jmapp npm run build:jd -- --watch",
"dev:quickapp:jmapp": "VITE_APP_PROJECT_ID=jmapp npm run build:quickapp -- --watch"
"dev:quickapp:jmapp": "VITE_APP_PROJECT_ID=jmapp npm run build:quickapp -- --watch",
"upgradeTaro": "chmod +x scripts/taro/upgradeTaro && ./scripts/taro/upgradeTaro"
},
"browserslist": [
"last 3 versions",
Expand Down
50 changes: 50 additions & 0 deletions packages/nutui-taro-demo/scripts/taro/upgradeTaro
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#!/bin/bash

get_package_version() {
grep "\"$1\"" package.json | sed -E 's/.*"\^*~*([^"]+)".*/\1/'
}

set_package_version() {
local package=$(echo "$1" | sed 's/\//\\\//g')
local latest_version=$2

if [[ $package ]] && [[ $latest_version ]]; then
sed -E -i '' "s/(\"$package\": )\"[^\"]*\"/\1\"$latest_version\"/g" package.json

echo "成功替换package.json文件中的 $package 版本号为 $latest_version"
fi

}
Comment on lines +7 to +17
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

考虑改进sed命令并提供替代方案。

目前的sed命令使用了-i标志来就地编辑文件,这通常是不鼓励的,因为如果命令失败,可能会导致数据丢失。建议先将更改写入临时文件,然后在成功完成后再替换原始文件。例如:

sed -E "s/(\"$package\": )\"[^\"]*\"/\1\"$latest_version\"/g" package.json > package.json.tmp && mv package.json.tmp package.json

此外,考虑使用jq作为更安全和更易于维护的替代方案。例如:

jq ".\"$package\" = \"$latest_version\"" package.json > package.json.tmp && mv package.json.tmp package.json

使用jq可以更轻松地处理JSON文件,并且可以避免使用复杂的sed命令。


echo "检查最新版本..."

lasterTaroVersion=$(npm view @tarojs/cli@beta version --registry=https://registry.npmjs.org)
lasterJdTaroVersion=$(npm view @jdtaro/taro-platform-jdharmony version --registry=http://registry.m.jd.com)
lasterJdTaroCppVersion=$(npm view @jdtaro/plugin-platform-jdharmony-cpp version --registry=http://registry.m.jd.com)

echo "最新版本号为:"
if [[ $lasterTaroVersion ]]; then
echo " @tarojs/*: $lasterTaroVersion"
fi

if [[ $lasterJdTaroVersion ]]; then
echo " @jdtaro/taro-platform-jdharmony: $lasterJdTaroVersion"
fi

if [[ $lasterJdTaroCppVersion ]]; then
echo " @jdtaro/taro-platform-jdharmony: $lasterJdTaroCppVersion"
fi

echo "
"

if [ -f "package.json" ]; then

set_package_version @tarojs/.+ $lasterTaroVersion

set_package_version @jdtaro/taro-platform-jdharmony $lasterJdTaroVersion

set_package_version @jdtaro/plugin-platform-jdharmony-cpp $lasterJdTaroCppVersion
else
echo "当前目录下没有package.json文件"
fi