我一直在遵循这里的官方RequireJS教程,没有任何运气。我想我可能误解了一些非常基本的东西。
我得到的错误如下:
Uncaught TypeError: Cannot read property 'noConflict' of undefined
文件夹结构:
/scripts/libs
jquery.js // current latest version
jquery-private.js
require.js // current latest version
/scripts
main.js
page.html
page.html
如下:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<title>Questions</title>
<script data-main="scripts/main" src="scripts/libs/require.js"></script>
</head>
<body>
hi
</body>
</html>
main.js
如下:
require.config({
baseUrl: 'scripts/libs',
map: {
'*': {'jquery': 'jquery-private'},
'jquery-private': 'jquery'
// I have also tried this line instead, as in the tutorial:
// 'jquery-private': { 'jquery': 'jquery' }
}
});
require(['jquery'], function(jq) {
alert('test');
});
, jquery-private.js
为:
define(['jquery'], function(jq) {
return jq.noConflict(true);
});
我不知道为什么它不工作。我想这是某种设置错误。jquery-private.js
文件中的jq
变量未定义
我能够让它工作使用这个作为require.config
:
require.config({
baseUrl: 'scripts/libs',
paths: {
'jquery': 'jquery'
},
map: {
'*': {'jquery': 'jquery-private'},
'jquery-private': { 'jquery': 'jquery' }
}
});
再次感谢!
版本没有映射
require.config({
baseUrl: 'scripts/libs',
paths: {
jquery: 'jquery-1.11.1.min'
}
});
require(['jquery-private'], function ($) {
console.log('jQuery version: ' + $.fn.jquery)
});
具有map配置的版本
require.config({
baseUrl: 'js/lib',
paths: {
'print': '../patch/print',
'jquery': '../patch/jquery-1.9.0'
},
map: {
'*': {jQuery: 'jquery'},
'jQuery': { 'jquery': 'jQuery' }
}
})
require(['jQuery'], function($) {
console.log('jQuery version: ' + jQuery.fn.jquery);
});