如何通过命令行添加并更新package.json中的自定义属性?
如何在命令行更新package.json的自定义字段
方法1:使用jq工具(推荐,适合快速操作)
jq是专门处理JSON的命令行工具,操作简单高效。
先添加自定义字段(比如
id: 1):jq '.id = 1' package.json > temp.json && mv temp.json package.json这条命令会读取
package.json,添加id字段并设为1,然后覆盖原文件。更新字段值为2:
jq '.id = 2' package.json > temp.json && mv temp.json package.json如果需要动态传值,还可以用变量:
NEW_ID=2 && jq --arg id "$NEW_ID" '.id = $id | .id |= tonumber' package.json > temp.json && mv temp.json package.json
注意:如果系统没有jq,可以通过npm install -g jq或者系统包管理器(比如brew install jq、apt install jq)安装。
方法2:用Node.js脚本(适合前端项目,无需额外工具)
如果你的项目本身就是Node.js项目,写个简单脚本更方便,还能灵活扩展。
创建更新脚本:在项目根目录新建
update-pkg-id.js,内容如下:const fs = require('fs'); const path = require('path'); const pkgPath = path.resolve(__dirname, 'package.json'); const pkg = require(pkgPath); // 获取命令行传入的新id值,默认设为2 const newId = process.argv[2] ? parseInt(process.argv[2], 10) : 2; pkg.id = newId; // 写入文件,保留原有的缩进格式 fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2)); console.log(`Successfully updated package.json id to ${newId}`);在package.json中添加脚本命令:
在scripts字段里加一行:"scripts": { "update-id": "node update-pkg-id.js" }执行更新:
- 直接更新为2:
npm run update-id - 自定义更新值(比如设为3):
npm run update-id 3
- 直接更新为2:
为什么不用npm version?
npm version是专门用来管理项目版本号(version字段)的工具,仅支持更新和版本相关的内置字段(比如major/minor/patch对应的版本升级),无法直接操作自定义字段,所以需要用上面的方法来实现。
内容的提问来源于stack exchange,提问作者Sourabh Kumar
相关产品推荐
相关产品推荐

