无法使用require.js

时间:2018-10-18 10:43:37

标签: javascript requirejs amd

只是为了好玩,我想使用jquery加载require.js。因此,我做了以下事情:

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:///协议还是使用Web服务器,都不会加载该模块,并且会看到空白页面。

控制台为undefined语句报告console.log,并为第二个语句报告以下异常,该异常是我访问jQuery对象/函数的结果,即从模块。

  

TypeError:$不是函数

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

来自jQuery源

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

    jQuery = function( selector, context ) {

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

    return jQuery;
});

1 个答案:

答案 0 :(得分:3)

您是否在requirejs配置中输入了“ jquery”?

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

enter image description here