RequireJS设置父级的路径

RequireJS Setting Path to the Parent Level

本文关键字:路径 设置 RequireJS      更新时间:2023-09-26

为了将我的模型、集合等从我的移动应用程序引导到我的web应用程序,我需要配置我的RequireJS。

我有以下文件结构:

/
/js
  /models
/mobile
  /js
  /templates

我希望我的mobile应用程序使用我的主应用程序的模型,所以我设置了以下内容:

require.config( {
    paths : {
        models : '/js/models',
        templates : 'mobile/templates'
    }
});

我在Chrome中得到了这些错误:

Uncaught SyntaxError: Unexpected token < /mobile/js/models/User.js?bust=0.1.0:1
Uncaught SyntaxError: Unexpected token < /mobile/js/models/InviteRequest.js?bust=0.1.0:1
Uncaught SyntaxError: Unexpected token < /mobile/js/models/Log.js?bust=0.1.0:1

这意味着它仍然在/mobile而不是/中查找。

此路径配置适用于我的templates文件夹,但不适用于models文件夹。如何将以models/开头的所有需求依赖项指向我的主模型文件夹?

谢谢!

尝试2

我试着设置baseUrl

require.config( {
    baseUrl : '/',
    paths : {
        views : 'mobile/views',
        templates : 'mobile/templates'
    }
});
require( [
    'app'
],
function(App) {
    App.initialize();
});

我得到错误:

GET http://local.m.mysite.co/app.js 404 (Not Found) require.js:2

在您的第二次尝试中,您基本上告诉RequireJS加载"app"模块,由于您将基本url设置为"/",RequireJS将在您的根路径中查找"app"。

因此,您需要做的是告诉RequireJS在哪里查找您的"应用程序"模块。假设你的"应用程序"模块在/js/module:中

/
/js
  /models
  /module
    /app.js
/mobile
  /js
  /templates

然后你加载"应用程序"模块的代码是:

require.config( {
    baseUrl : '/',
    paths : {
        views : 'mobile/views',
        templates : 'mobile/templates'
    }
});
require( [
  'js/module/app'
],
function(app) {
    app.initialize();
});

或者,您可以在配置中设置"module"路径。然后在依赖项加载中参考以下路径:

require.config( {
    baseUrl : '/',
    paths : {
        views : 'mobile/views',
        templates : 'mobile/templates',
        module: 'js/module'
    }
});
require( [
  'module/app'
],
function(app) {
    app.initialize();
});

至于您在尝试2之前在Chrome中遇到的错误,您需要查看如何在模块加载中引用您的模块。