无法使用 require.js 加载 jquery

Unable to load jquery using require.js

只是为了好玩,我想使用 require.js 加载 jquery。所以,我做了以下内容:

amd.js

define(["jquery-3.3.1"], function($) {
    console.log(typeof $);              // reports undefined
    $("h1").html("Hello from AMD");     // causes TypeError (see below)
});

我的 HTML 文件非常简单,只有一个空白 <h1> 元素和通常的 require.js 定义。

<script data-main = "amd" src = "require.js"></script>

另外,我的根文件夹,所有东西都在这里,也包含 jquery-3.3.1.js 源文件。

您可能会看到整个示例代码 here on my github repo。忽略所有文件,除了:

  1. amd.html
  2. amd.js
  3. jquery-3.3.1.js
  4. require.js

但是,当我访问页面时,无论是使用 file:/// 协议还是使用网络服务器,模块都没有加载,我看到的是空白页面。

控制台针对console.log语句报undefined,在我访问jQueryobject/function的第二条语句报如下异常,是什么从模块返回。

TypeError: $ is not a function

我正在使用 jquery 版本 3.3.1。如果您查看 jquery 的这个(和任何)版本的 the source,众所周知 jquery 是一个函数对象。见下文:

来自 jQuery 来源

define( [
    ...
], function( ..., ..., ... ) {

    jQuery = function( selector, context ) {

        return new jQuery.fn.init( selector, context );
    },

    return jQuery;
});

您是否在您的 requirejs 配置中输入了 'jquery'?

requirejs.config({
    baseUrl: 'js/lib', // path to your source
    paths: {
        jquery: 'jquery-3.3.1' // invoke
    }
});