RequireJS配置错误--调用Backbone时找不到jQuery。

问题描述 投票:1回答:1

我正在尝试建立一个require js项目,用于学习。我需要运行一个Backbone应用。

Index.html,看起来很简单。

<!DOCTYPE html>
<html>
<head>
    <base href="/" />
    <title>RequireJS - Test drive</title>
    <!-- data-main attribute tells require.js to load scripts/main.js after 
require.js loads. -->
<script data-main="js/main" src="js/vendor/require.js"></script>
</head>
<body>
    <h1>RequireJS - Test drive</h1>
</body>
</html>

目前我的main. js里有这样的配置: (这是index.html中requirejs的入口)

require.config({
    paths: {
        underscore: 'vendor/underscore-1.9.1.min',
        jquery: 'vendor/jquery-3.4.1.min',
        backbone: 'vendor/backbone-1.4.0.min',
        app: 'app/app',
        userModel: 'app/models/user.model',
        userListView: 'app/views/user-list.view',
        userSingleView: 'app/views/user-single.view',
    },
    bundles: {
        'models': ['userModel']
    },
    shim: {
        'backbone': {
            deps: ['underscore', 'jquery'],
            exports: 'Backbone'
        },
        'underscore': {
            exports: '_'
        }
    },
});

// Start the app
define(['app'], (App) => {
    return App.initialize();
}); 

在app.js中,我试图用它来启动应用程序,我有以下内容。

define(['backbone'], (Backbone) => {

    const initialize = () => {
        console.log('App initialized.', Backbone);
        const data = {title: 'title'};
        const view = 0; // new View here....
    };

    return {
        initialize: initialize
    }
});

现在,如果我把backbone作为一个依赖项移除,我就能在浏览器中看到console.log消息。如果我把它留在那里,那么控制台就会抛出这个错误。

require.js:5 GET http://127.0.0.1:8080/js/js/vendor/jquery-3.4.1.min.js net::ERR_ABORTED 404 (Not 
Found)

require.js:5 Uncaught Error: Script error for "js/vendor/jquery-3.4.1.min", needed by: backbone
https://requirejs.org/docs/errors.html#scripterror
at makeError (require.js:5)
at HTMLScriptElement.onScriptError (require.js:5)

检查网络选项卡,我可以看到jQuery依赖已经出错了,并且由于某种原因,路径中增加了一个额外的js,导致jQuery出现404错误,但只有当我尝试在app.js文件中使用Backbone时才会出现。

路径看起来是这样的,并添加了额外的js。

http://127.0.0.1:8080/js/js/vendor/jquery-3.4.1.min.js

請問我在應用程式的configurationetup中缺了什麼?

谢谢!我想在应用程序的配置设置中,设置一个requirements。

backbone.js requirejs amd
1个回答
0
投票

我相信你应该设置 baseUrl 在你的配置中

require.config({
  baseUrl: '/js'
});
© www.soinside.com 2019 - 2024. All rights reserved.