Requirejs,加载underscore库的问题

7

我正在使用 require.version "2.0.0"。

并且我想将 underscore 作为本地变量获取:

这是我的代码(1)。

为什么 _ 是未定义的?
如何在函数内获取 _ 作为本地变量。


(1)

require.config({
    baseUrl: "./",
    paths: {
        'underscore': 'vendor/js/underscore-min'
    },
    shim: {
        'underscore': {
            exports: 'underscore'
        }
    }
});

require([
    'underscore'
 ], function(_) {
    "use strict";
    console.log(_); // undefined
});

1
你是否使用 AMD 的 Underscore 分支 https://github.com/amdjs/underscore?如果没有,那可能解释了你的问题。 - nikoshr
@nikoshr 感谢您的评论。我没有使用 AMD 版本的 Underscore。不过,有没有一种方法可以在不使用 AMD 版本的情况下解决这个问题呢? - Lorraine Bernard
@nikoshr 无论如何,如果您查看这篇文章,似乎shim已经被引入来修复不符合AMD的插件。 - Lorraine Bernard
1个回答

5
很简单,只需要将exports: 'underscore'替换为exports: '_'。 这告诉require将模块附加到_。因此,引用window._仍然有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接