You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从package.json依赖片段生成指定格式的字符串?

实现package.json依赖片段到指定格式的转换

有几种简单实用的方法可以完成这个转换,都是日常开发里常用的:

方法1:用Node.js脚本(最稳妥,适合处理标准JSON)

如果你的依赖片段是标准JSON格式,直接用Node.js解析拼接最不容易出错:

  1. 把依赖内容整理成纯JSON对象(去掉外层的"dependencies":),保存为deps.json:
{
    "@types/lodash.camelcase": "^4.3.6",
    "@types/lodash.kebabcase": "^4.1.6",
    "@types/lodash.lowercase": "^4.3.6",
    "@types/lodash.upperfirst": "^4.3.6",
    "@types/mime": "^2.0.3",
    "@types/swagger-jsdoc": "^6.0.1",
    "async": "^3.2.2",
    "aws-arn": "^1.0.1"
}
  1. 写一段简单的Node.js脚本(比如convert.js):
const fs = require('fs');
const deps = JSON.parse(fs.readFileSync('deps.json', 'utf8'));
const result = Object.entries(deps).map(([name, version]) => `${name}@${version}`).join(' ');
console.log(result);
  1. 运行脚本:node convert.js,直接得到目标格式输出。

方法2:用jq命令行工具(适合直接处理完整package.json)

如果依赖本来就在完整的package.json文件里,用jq(轻量JSON处理工具)可以一键生成结果:

jq -r '.dependencies | to_entries | map("\(.key)@\(.value)") | join(" ")' package.json

命令逻辑拆解:

  • .dependencies:提取package.json中的依赖对象
  • to_entries:将键值对转为{key: "...", value: "..."}的数组格式
  • map(...):把每个元素拼接成包名@版本号的格式
  • join(" "):用空格连接所有拼接后的字符串
  • -r:输出原始字符串,不带JSON引号

方法3:用正则表达式快速替换(适合临时处理文本片段)

如果只是临时处理这段文本,直接用编辑器的查找替换功能(比如VS Code、Sublime):

  1. 查找模式(开启正则匹配):"([^"]+)": "([^"]+)",?
  2. 替换模式:$1@$2
  3. 替换完成后,删掉末尾多余的空格即可

也可以用sed命令在终端处理:

sed -E 's/"([^"]+)": "([^"]+)",?/\1@\2 /g' your-deps-file.txt | xargs echo

内容的提问来源于stack exchange,提问作者Vansham Aggarwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 09:55:14