设置 CodeMirror 合并视图时遇到问题 + Require.js

Trouble setting up CodeMirror Merge View + Require.js

我有一个使用 Require.js 的项目,我使用 CodeMirror 在浏览器中 view/edit 一个 JavaScript 文件(这个和所有 CodeMirror 插件都按预期工作)。

我现在需要显示文件中的任何差异,所以我一直在尝试实现 merge.js 插件,但在使用 diff_match_patch.js 库时遇到了问题,这也是必需的。

我需要在本地提供所有资产,所以我将 diff_match_patch.js 文件放在与 merge.js 相同的目录中,因为我认为 merge.js 期望它放在那里:

// merge.js
else if (typeof define == "function" && define.amd) // AMD
define(["../../lib/codemirror", "diff_match_patch"], mod);

但是看着我的检查员,我看到了

"NetworkError: 404 Not Found - http://localhost:8080/js/diff_match_patch.js"

所以我把diff_match_patch.js移动到了/js/目录下。 (这并不理想,但如果可行的话还可以)

没有 404,但现在我看到了:

// merge.js 
// (line 550, col 12)
"TypeError: diff_match_patch is not a constructor
var dmp = new diff_match_patch();"

我不确定我做错了什么,但如果有人能对此有所说明,那就太好了。我还复制了 demo 中的标记 我看到了相同的 "diff_match_patch is not a constructor" 错误。从 CDN 引用 diff_match_patch.js 也会出现同样的错误。

有什么想法吗?

谢谢!

在相应的 github issue

处进行更多讨论和解决方案