无法在RequireJS中创建功能流

时间:2014-01-04 21:11:12

标签: jquery requirejs require

我无法使用RequireJS创建我的功能流。由于我是菜鸟,请耐心等待。以下是我一直在尝试的片段:

在我的HTML文件中:

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

main.js

requirejs.config({
    baseUrl: 'js/lib',
    paths: {
        app: '../app',
        pages: '../pages',
        jquery: 'jquery'
    }   
});
define(function (require) {
var $ = require('jquery');
if( $('form').length > 0 ) require('app/form');

});

form.js中,我只是发出警报,看是否被调用。但相反,我在控制台上看到一个错误......

Error: Script error for: jquery http://requirejs.org/docs/errors.html#scripterror


...,h){c=Error(c+"\nhttp://requirejs.org/docs/errors.html#"+b);c.requireType=b;c.re...

3 个答案:

答案 0 :(得分:1)

我不确定您要完全实现的目标,但requirejs不能像node.js那样工作,这就是您加载模块的方式。

requirejs中,define函数用于声明/定义一个模块,它需要3个参数,第一个参数是可选的,你要调用模块的名称,第二个参数是您需要的依赖项数组。

在您的情况下,您的依赖项为jquery.jsform.js

define(['jquery', 'form'], function() {
    // do your thing here.
});

如果您打算只加载表单脚本/模块,那么您需要的是require函数

require(['jquery', 'form'], function() {
    // do your thing here.
});

您的form.js文件/表单模块应定义如下:

define(['deps'], function(){
   // put your alert here
});

答案 1 :(得分:0)

您收到的错误表明RequireJS已加载您的"jquery"文件,但它无法让JavaScript虚拟机无错误地对其进行评估。由于documentation states这通常是由于正在加载的文件的代码中的错误。当我有不平衡的花括号或括号或缺少逗号等时,我发生了这种情况。确保你的jQuery文件没有损坏。

答案 2 :(得分:0)

我设法让这段代码正常运行,没有任何错误:

require.config({
    paths : {
        jquery : 'jquery-1.10.0'
    }
});

define('myModule', function (require) {
    var $ = require('jquery');
    console.log(typeof $);
});


require(['myModule'], function() {
});