我试图将Underscore.String库带入Require.js项目。该库设置为支持AMD,代码如下:
} else if (typeof define === 'function' && define.amd) {
// Register as a named module with AMD.
define('underscore.string', [], function() {
return _s;
});
但是我遇到了一个问题:我没有将库保留在我的根路径中,我将它保存在" ext / underscore.string"中。这似乎使得无法要求图书馆。
我已尝试同时要求"ext/underscore.string"
和"underscore.string"
,无论是否定义路径("underscore.string": "ext/underscore.string"
)。当我没有路径时,我需要" underscore.string"文件(毫不奇怪)不加载,在所有其他情况下文件加载但文件库没有定义。
如果我之后尝试引用该库,我会得到:
错误:模块名称" underscore.string"尚未加载 上下文:
...即使我在定义行之后立即执行此操作(在上面的代码中)!换句话说,如果我将代码更改为
define('underscore.string', [], function() {
return _s;
});
console.log(require('underscore.string'))
要求告诉我" underscore.string"尚未加载!
任何人都可以帮我弄清楚如何将这个库带入我的代码库吗?
答案 0 :(得分:1)
在您的require配置中执行:
var require = {
...
map: {
"*": {
"underscore.string": "path/to/file/disregarding/baseUrl"
}
}
};
注意:文件路径应该包含 baseUrl
,因此在您的情况下并假设为baseUrl="scripts"
,它将类似于:
"scripts/ext/underscore.string.js"
注2:它需要.js
扩展名,即它是确切的文件名。