基于JavaScript的diff实用工具

我正在寻找一个JavaScript编写的差异等价物,只返回/打印相关的行。 我不希望两个全文紧挨着显示,但差异仅在于实际差异(加上一些缓冲行来知道差异在哪里),类似于linux diff实用程序的输出。

有没有人知道这样做的JavaScriptfunction? 应该认识到所有的差异(甚至改变空格)。 谢谢。

jsdifflib内联模式比较,尝试调整上下文大小来显示所需的更改窗口。 这里有一个演示

我完全重buildjsdifflib实用程序的速度。 由于我的版本不需要DOM访问,所以速度至less要快4.5倍,而且它还扩展为突出显示每行中的字符差异。

http://prettydiff.com/diffview.js

您可以使用在线工具直接在http://prettydiff.com/进行testing

还有谷歌的google-diff-match-patch

也可在NPM上使用

npm install diff-match-patch 

我不知道在Linux或Linux的diff工具一般,但这可能是你正在寻找jsdifflib 。 你可以在那里find一个生动的例子,看看它是否适合你。

检查CodeMirror 。 Nuff说。

检查我最小的实现: https : //github.com/Slava/diff.js

查看wikEd diff JavaScript库。 还有一个在线工具 。

wikEd difffunction内嵌文本比较与块移动突出显示和字符/基于字的解决scheme。 它针对维基百科源文本进行了优化,但适用于任何types的文本或代码。 库代码是完全可定制的,具有Unicode支持,被广泛评论,并在公共领域。

  • 合并是完全值得检查。 仅基于CodeMirror的客户端。
  • 然后是需要服务器端差异计算的CodeMirror演示 。
  • jsdifflib和prettydiff在其他答案中提到。

jsdifflib看起来很有前途 – 尝试从该页面链接的演示。

老问题,我知道,但如果你做的节点工作或想要的东西,与requirejs / commonjs模块兼容

我真的很喜欢https://www.npmjs.com/package/diff

 console.log(diff.createPatch('some file name.txt', expected, actual));