Javascript 如何使用RequireJS加载下划线库?
不行!(Javascript 如何使用RequireJS加载下划线库?,javascript,underscore.js,requirejs,Javascript,Underscore.js,Requirejs,不行!(不是一个函数) 如何管理它?这完全取决于脚本的基础位置。 require(['underscore'], function ($, _) { ... }); 因为我没有看到您指定baseUrl,所以baseUrl将是默认值, 这意味着两件事之一: 您的脚本直接位于html文件中,在您的例子中 因此,将在html的同一目录中查找underline.js 文件 脚本位于html引用的javascript文件中 文件,它现在将在 自定义javascript文件 检查下划线.js是否确实存
不是一个函数)
如何管理它?这完全取决于脚本的基础位置。
require(['underscore'], function ($, _) {
...
});
因为我没有看到您指定baseUrl,所以baseUrl将是默认值,
这意味着两件事之一:
您的脚本直接位于html文件中,在您的例子中
因此,将在html的同一目录中查找underline.js
文件
脚本位于html引用的javascript文件中
文件,它现在将在
自定义javascript文件
检查下划线.js是否确实存在。我认为问题在于传入回调的参数的顺序
应该是:
require(["underscore"], function() {
console.log(_ === window._);
});
此外,您还需要使用添加了此功能的下划线版本1.2.1。以下是检查点,以确保您所需的工作正常
获取并将其放到您的/js根目录下
添加到您的HTML,就在结束标记之前:
获取,并将其放入/js root
目录
在main js file name.js中
写:
require(['underscore'], function (_, $) {
...
});
类似地,在非主AMD JS文件中,当定义模块时,要使用\uuu
,请编写:
require(["jquery", "underscore"], function ($, _) {
...
});
请注意,下划线.js不会将自己注册为AMD模块(尽管在早期版本中它注册了一段时间),因此,如果没有使用“shim:”进行一些配置,则无法在require()调用中使用它,例如:
见以下文档:
在将shim:
添加到require.js之前,您可以对插件use.js执行类似的操作(以防您需要使用旧版本的require.js)
在撰写本文时,require.js的当前版本是2.1.8
或者,您可以使用lodash.js作为下划线.js的替代品-它确实注册为AMD模块,因此您可以使用它,而无需额外配置:显然,顺序是问题的一部分
define(["jquery", "underscore"], function ($, _) {
...
return theModuleObjectOrFunction;
});
require.config({
paths: {
jquery: 'lib/jquery.min',
underscore: 'lib/underscore-min'
}
shim: {
"underscore": {
exports: "_"
}
}
});