替换 package.json 文件中的第一次出现
Replace first occurrence in package.json file
很难仅替换我的 package.json 文件中出现的 version
属性 值
我试过的
CURRENT_VERSION=$(node -p "require('./package.json').version")
sed -i '0,/$CURRENT_VERSION/{s//1.0.2/}' package.json
-- file doesn't change --
我的package.json文件
{
"version": "1.0.0",
"dependencies": {
"demo-dep": "1.0.0"
}
}
用 sed
解析 json 文件太容易出错,尽量避免这种情况并使用专门的工具来完成这项工作。
npm
本身可以用来设置版本hassle-free,见https://docs.npmjs.com/cli/v8/commands/npm-version
在你的情况下 运行 npm version 1.0.2
应该有效
如果您仍想使用 sed - 这样的方法应该可行
sed -i "0,/$CURRENT_VERSION/ s/$CURRENT_VERSION/1.0.2/"
但是如果 npm 不是一个选项 - 我建议你使用 jq
tmp=$(mktemp); jq '.version = "1.0.2"' package.json > "$tmp" && mv "$tmp" package.json
肯定会少error-prone
很难仅替换我的 package.json 文件中出现的 version
属性 值
我试过的
CURRENT_VERSION=$(node -p "require('./package.json').version")
sed -i '0,/$CURRENT_VERSION/{s//1.0.2/}' package.json
-- file doesn't change --
我的package.json文件
{
"version": "1.0.0",
"dependencies": {
"demo-dep": "1.0.0"
}
}
用 sed
解析 json 文件太容易出错,尽量避免这种情况并使用专门的工具来完成这项工作。
npm
本身可以用来设置版本hassle-free,见https://docs.npmjs.com/cli/v8/commands/npm-version
在你的情况下 运行 npm version 1.0.2
应该有效
如果您仍想使用 sed - 这样的方法应该可行
sed -i "0,/$CURRENT_VERSION/ s/$CURRENT_VERSION/1.0.2/"
但是如果 npm 不是一个选项 - 我建议你使用 jq
tmp=$(mktemp); jq '.version = "1.0.2"' package.json > "$tmp" && mv "$tmp" package.json
肯定会少error-prone