Can';不要使用requirejs

Can';不要使用requirejs,requirejs,requirejs-text,Requirejs,Requirejs Text,我是require.js的新手。 我还有一个麻烦。 I.js: <script data-main="/Scripts/page/main" src="/Scripts/framework/require.js"></script> 我试着像在手册中一样使用它,但不幸的是它不起作用。 为什么require函数中的jquery变量未定义? 感谢您的帮助。问题在于,requireJs将从中加载脚本的baseUrl是您在数据主属性中指定的。从文档中: 如果在配置中未显式设置

我是require.js的新手。
我还有一个麻烦。 I.js:

<script data-main="/Scripts/page/main" src="/Scripts/framework/require.js"></script>

我试着像在手册中一样使用它,但不幸的是它不起作用。 为什么require函数中的jquery变量未定义?
感谢您的帮助。

问题在于,requireJs将从中加载脚本的
baseUrl
是您在
数据主属性中指定的。从文档中:

如果在配置中未显式设置baseUrl,则默认值为 值将是加载require.js的HTML页面的位置如果 如果使用数据主属性,则该路径将成为baseUrl

根据这一点,您的路径需要如下所示:

require.config({
  shim: {
    backbone: {
      exports: 'backbone'
    }
  },
  paths: {
    jquery: "../Scripts/framework/jquery/jquery-1.6.4",
    underscore: "../Scripts/framework/underscore/underscore",
    backbone: "../Scripts/framework/backbone/backbone"
  }
require.config({
  baseUrl: "./",
  shim: {
    backbone: {
      exports: 'backbone'
    }
  },
  paths: {
    jquery: "Scripts/framework/jquery/jquery-1.6.4",
    underscore: "Scripts/framework/underscore/underscore",
    backbone: "Scripts/framework/backbone/backbone"
  }
您还可以将
baseUrl
设置为项目的根目录,如下所示:

require.config({
  shim: {
    backbone: {
      exports: 'backbone'
    }
  },
  paths: {
    jquery: "../Scripts/framework/jquery/jquery-1.6.4",
    underscore: "../Scripts/framework/underscore/underscore",
    backbone: "../Scripts/framework/backbone/backbone"
  }
require.config({
  baseUrl: "./",
  shim: {
    backbone: {
      exports: 'backbone'
    }
  },
  paths: {
    jquery: "Scripts/framework/jquery/jquery-1.6.4",
    underscore: "Scripts/framework/underscore/underscore",
    backbone: "Scripts/framework/backbone/backbone"
  }

我只是遇到了同样的问题

我在it方面也是新手,但我发现了一个很好的解决方案

基本上是将垫片延伸至:

requirejs.config({

    baseUrl: 'js/lib', 

    shim: {
        underscore: {
            exports: '_'
        },
        backbone: {
            deps: ['underscore', 'jquery'],
            exports: 'backbone'
        }
    },  

    paths: {
        app: '../app',
        jquery: 'jquery-1.10.2.min',
        backbone: 'backbone.min',
        underscore: 'underscore.min'
    }   
});

requirejs(['jquery', 'underscore', 'backbone'], function($, _, Backbone) {  
    console.log('here');
});
似乎下划线和主干都是由jquery和下划线引起的

这对我来说很有用,也很有意义


如果没有,请纠正我。

谢谢你的回答,我尝试使用了你所有的变体,但运气不好。所有必需的文件都已上载,但函数jquery变量中仍未定义。我错在哪里?