@financial-times/package-json

中文文档
4.1.0发布于 2026/11/09MITCommonJS零依赖近 30 天下载 2232

此库允许您加载、 操纵和写入内容 package.json 文档。 它还规定: 更改日志 详细说明已作出的修改.

中文使用文档
文档目录12 节
  1. 装入包 Json
  2. 起来
  3. 有变化可写入
  4. 写入更改
  5. 获取字段
  6. 设置
  7. 删除字段
  8. 需要依赖性
  9. 删除依赖性
  10. 需要脚本
  11. 删除脚本
  12. 获取 Changgerog

软件包-json

此库允许您加载、操纵和写入内容 (单位:千美元) package.json 文档. 它还规定: 更改日志 详细说明任何更改 这已经做了.

使用量

npm install @financial-times/package-json

装入包 Json

装入指定后 package.json 文档输入内存 loadPackageJson 方法返回可用于修改 package.json 文档并把这些修改写回磁盘中.

const loadPackageJson = require("@financial-times/package-json");
const packageJson = loadPackageJson({ filepath: `filepath/to/package.json` });

返回的方法 :

起来

返回代表当前工作状态的对象 package.json 文档。 如果尚未通过调用来写入更改, 这可能与文件系统中存在的内容不同 writeChanges 方法.

packageJson.get();

有变化可写入

检查是否有要写入的文件更改 .

packageJson.hasChangesToWrite(); // true or false

写入更改

写给 package.json 文档.

packageJson.writeChanges(); // true

获取字段

从中获取特定字段 package.json 对象,通过传递字段作为参数.

packageJson.getField("name"); // "@financial-times/package-json"

设置

设置特定字段的值 package.json 对象并返回更改日志条目.

packageJson.setField("name", "newName");

返回更改日志条目对象 :

{
  "event": "setField",
  "field": "name",
  "meta": {},
  "previousValue": "oldName",
  "alreadyExisted": false
}

删除字段

删除 package.json 对象并返回更改日志条目.

packageJson.removeField("license");

返回更改日志条目对象 :

{
  "event": "removeField",
  "field": "license",
  "meta": {},
  "previousValue": "MIT",
  "alreadyExisted": true
}

需要依赖性

要求软件包作为依赖存在于 package.json。 。 。 .

packageJson.requireDependency({
  pkg: "prettier",
  version: "1.16.4",
  field: "devDependencies"
});

返回更改日志条目对象 :

{
  "event": "requireDependency",
  "field": "devDependencies",
  "meta": {
    "pkg": "prettier",
    "version": "1.16.4"
  },
  "previousValue": "1.16.3",
  "alreadyExisted": true
}

删除依赖性

删除作为依赖的软件包 package.json。 。 。 .

packageJson.removeDependency({
  pkg: "prettier",
  version: "1.16.4",
  field: "devDependencies"
});

返回更改日志条目对象,或 false 如果依赖不存在:

{
  "event": "removeDependency",
  "field": "devDependencies",
  "meta": {
    "pkg": "prettier"
  },
  "previousValue": "1.16.3",
  "alreadyExisted": true
}

需要脚本

要求脚本存在于 scripts 领域 package.json。 。 。 .

packageJson.requireScript({
  stage: "test",
  command: "npm run unit-test"
});

返回更改日志条目对象 :

{
  "event": "requireScript",
  "field": "scripts",
  "meta": {
    "stage": "test"
  },
  "alreadyExisted": true
}

删除脚本

要求脚本存在于 scripts 领域 package.json。 。 。 .

packageJson.removeScript({
  stage: "lint"
});

返回更改日志条目对象 :

{
  "event": "removeScript",
  "field": "scripts",
  "meta": {
    "stage": "lint"
  },
  "alreadyExisted": true
}

获取 Changgerog

更改日志代表了对 package.json 对象,无论是否已经写入文件.

更改日志由条目对象组成,这些对象都具有以下属性:

  • event - 活动的类型,即. setField, (中文(简体) ), requireDependency, (中文(简体) ), removeDependency 或者说 requireScript
  • field - 球场在 package.json 已经改变
  • alreadyExisted - 标记字段是否已经存在
  • previousValue - 该字段的上个值
  • meta - 包含变化等额外细节的物体. pkg, (中文(简体) ), version, (中文(简体) ), stage

您可以使用下列方法访问更改日志条目:

  • getChangelog()
  • getChangelog.asMessages()
  • getChangelog.lastEntry()
  • getChangelog.lastEntryAsMessage()

与更改日志合作的例子

packageJson.requireDependency({
  pkg: "prettier",
  version: "1.16.4",
  field: "devDependencies"
});

packageJson.requireScript({
  stage: "test",
  command: "npm run unit-test"
});

const changelogObjects = packageJson.getChangelog();

/*
[
  {
    event: "requireDependency",
    field: "devDependencies",
    meta: {
      pkg: "prettier",
      version: "1.16.4"
    },
    previousValue: "1.16.3",
    alreadyExisted: true
  },
  {
    event: "requireScript",
    field: "scripts",
    meta: {
      stage: "test"
    },
    alreadyExisted: true
  }
]
*/

const changelogMessages = packageJson.getChangelog.asMessages();

/*
[
  "Required package [email protected] in devDependencies, previously 1.16.3",
  "Required script for stage 'test' (overwrote existing command)"
]
*/

const lastChangelogEntryObject = packageJson.getChangelog.lastEntry();

/*
{
  event: "requireScript",
  field: "scripts",
  meta: {
    stage: "test"
  },
  alreadyExisted: true
}
*/

const lastChangelogEntryMessage = packageJson.getChangelog.lastEntryAsMessage();

// "Required script for stage 'test' (overwrote existing command)"

版本与发布记录

@financial-times/package-json 共发布 7 个版本,首次发布于 2019/02/20;过去 12 个月发布了 1 个版本。

版本发布日期距今
4.1.0latest2026/11/095 天前
4.0.02023/06/303 年前
3.0.02020/10/026 年前
2.0.12019/10/167 年前
2.0.02019/04/267 年前
1.0.22019/02/227 年前

关于 @financial-times/package-json 的常见问题

@financial-times/package-json 是什么?

此库允许您加载、 操纵和写入内容 package.json 文档。 它还规定: 更改日志 详细说明已作出的修改.

如何安装 @financial-times/package-json?

在项目目录运行 npm install @financial-times/package-json,或使用 pnpm add / yarn add / bun add。

@financial-times/package-json 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/financial-times__package-json 是否存在。

@financial-times/package-json 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@financial-times/package-json 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js 16.x || 18.x || 20.x || 22.x || 24.x || 26.x。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@financial-times/package-json 可以商用吗?

@financial-times/package-json 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@financial-times/package-json 的下载量有多少?

根据 npm 官方下载统计,@financial-times/package-json 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,232 次,日均约 74 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@financial-times/package-json 还在维护吗?

最新版本 4.1.0 发布于 2026/11/09(5 天前);至今共发布 7 个版本,其中过去 12 个月发布了 1 个;首次发布于 2019/02/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。