简介
compare-dir-json
是一个能够对比两个文件夹下的 JSON 文件并输出差异的 npm 包。
在前端开发中,经常使用 JSON 文件存储数据,当我们需要修改一个数据时,我们复制一份并进行修改,但是在修改的过程中我们可能会忘记修改某个字段,或者出现了意外修改。如果我们只是通过手动去比较两个 JSON 文件,那么非常耗费时间且容易出错, compare-dir-json
包就是为了解决这个问题而开发的。
安装
在使用 compare-dir-json
之前,我们需要先进行安装。在终端中输入以下命令即可:
npm install compare-dir-json --save-dev
使用
使用 compare-dir-json
很简单,只需要按照以下步骤操作:
引入
compare-dir-json
依赖。const { compareDirJson } = require('compare-dir-json');
调用
compareDirJson
方法比较两个文件夹下的 JSON 文件并返回有差异的 JSON 对象。const { added, deleted, modified } = compareDirJson('path/to/folder1', 'path/to/folder2');
返回的分别是新增的、删除的和修改过的 JSON 文件对象数组。
// example: 对比两个文件夹中的 JSON 文件并打印出差异信息 const { compareDirJson } = require('compare-dir-json'); const result = compareDirJson('./folder1', './folder2'); console.log('Added:\n' + JSON.stringify(result.added, null, ' ')); console.log('Deleted:\n' + JSON.stringify(result.deleted, null, ' ')); console.log('Modified:\n' + JSON.stringify(result.modified, null, ' '));
注意:
path/to/folder1
和path/to/folder2
都要传入绝对路径。
示例
在以下的示例中,我们假设文件夹 ./folder1
中有一个名为 data.json
的文件,内容如下:
{ "name": "lemon", "age": 18 }
而文件夹 ./folder2
中的 data.json
文件内容如下:
{ "name": "lemon", "age": 20 }
我们通过调用 compareDirJson
方法对这两个文件夹中的 data.json
进行比较,并将结果打印出来,代码如下:
const { compareDirJson } = require('compare-dir-json'); const result = compareDirJson('/path/to/folder1', '/path/to/folder2'); console.log('Added:\n' + JSON.stringify(result.added, null, ' ')); console.log('Deleted:\n' + JSON.stringify(result.deleted, null, ' ')); console.log('Modified:\n' + JSON.stringify(result.modified, null, ' '));
打印出来的结果如下:
-- -------------------- ---- ------- ------ -- -------- -- --------- - - ------- ------------ --------- - ------- -------- ------ -- -- -------- - ------- -------- ------ -- - - -
从结果可以看出,在 ./folder1
文件夹中的 data.json
文件与 ./folder2
文件夹下的 data.json
文件相比,age
属性的值从 18
变成了 20
,所以该文件被视为被修改过的。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005578081e8991b448d4800