到目前为止,我有一个兼容的库(JQuery,Underscore,Backbone)的组合。他们没有任何问题。 但是这些版本已经很老了,我想升级到更新的版本。当我更换库时,我遇到了一些奇怪的错误。我从这三个最新版本中下载了,但它没有用。 我搜索了一些解决方案,但我只发现了一些" RequireJS "。但是我不想重新组织我的整个申请,所以现在我要求一种方法,我可以在没有" RequireJS "或者以简单的方式整合它。
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Lib Test</title>
<script type="text/javascript" src="jquery-1.11.2.js"></script>
<script type="text/javascript" src="underscore-1.8.3.js"></script>
<script type="text/javascript" src="backbone-1.1.2.js"></script>
<script type="text/javascript" src="myotherfiles.js"></script>
<script type="text/javascript">
some code...
</script>
</head>
<body>
</body>
</html>
我的index.html看起来像这样,但是当我使用它运行我的个人代码时,我只会从下划线和主干中获得错误。
其中一个错误是:
TypeError: n.replace is not a function
in underscore-1.8.3.js
修改
我发现了我的错误。我涉及一种不再受支持的弃用方法。 -.-但我会使用 Requirejs 来避免进一步的冲突。我的项目会增强很多,在某些时候,它会变得太大。我潜入了 Requirejs ,我觉得值得一试。
答案 0 :(得分:0)
Jquery,Backbone和Underscore是没有外部依赖关系的库。它们可以独立于您编写的任何其他javascript代码使用,您可能遇到的唯一冲突是当您在全局范围中定义一个变量时,该变量的名称与库中导出的变量相同&#34; $& #34;,&#34; Backbone&#34;和&#34; _&#34;。
Require.js是一个库,允许您编写模块化的javascript代码,异步添加脚本,管理它们之间的依赖关系,避免污染全局范围,但它与任何其他库没有直接关系,所以它不应该导致任何问题所以答案是是的,您可以使用没有require.js的库。
就个人而言,我没有使用Backbone,但我与其他人一起工作,有没有require.js没有任何问题。
<强> {编辑} 强>
Backbone对underscore.js有很强的依赖性,但仍然与require.js无关,可以独立工作。
答案 1 :(得分:0)
我尝试了你的代码(显然没有你的脚本)并且它没有报告任何错误:
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Lib Test</title>
<script src="https://code.jquery.com/jquery-1.11.2.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone.js"></script>
<script type="text/javascript">
console.log('jQuery is',jQuery);
console.log('underscore is',_);
console.log('backbone is',Backbone);
</script>
</head>
<body>
</body>
</html>
这意味着您的脚本可能出现错误,该脚本试图以意外的方式使用下划线方法。