我无法使用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...
答案 0 :(得分:1)
我不确定您要完全实现的目标,但requirejs
不能像node.js
那样工作,这就是您加载模块的方式。
在requirejs
中,define
函数用于声明/定义一个模块,它需要3个参数,第一个参数是可选的,你要调用模块的名称,第二个参数是您需要的依赖项数组。
在您的情况下,您的依赖项为jquery.js
和form.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() {
});