1.引入require.js
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script data-main="./resources/main.js" src="./resources/require.js"></script>
</body>
</html>
其中data-main
属性的作用是,指定网页程序的主模块,在上例中,就是js目录下面的main.js,这个文件会第一个被require.js加载
且由于require.js默认的文件后缀名是js,所以可以把main.js简写成main
2.配置模块路径
main.js中可以配置路径:
require.config({
paths: {
'jquery':'lib/jquery.min'
}
})
index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button onclick="test()">测试</button>
<script data-main="./resources/main.js" src="./resources/require.js"></script>
<script>
function test() {
require(['jquery'], function ($) {
$('body').css({'backgroundColor': 'dodgerblue'});
})
}
</script>
</body>
</html>
3.配置公共路径
main.js:
require.config({
baseUrl: 'resources/lib',
paths: {
'jquery': 'jquery.min',
'angular': 'angular.min'
}
})
baseUrl为基路径,但是要注意baseUrl要从main.js所在目录开始编写
注意,此时require方法是在test函数中,因此不存在加载先于<script data-main="./resources/main.js" src="./resources/require.js"></script>
的问题
如果此时的配置是这样的:
<script data-main="./resources/main.js" src="./resources/require.js"></script>
<script>
require(['jquery'], function ($) {
$('body').css({ 'backgroundColor': 'dodgerblue' });
})
</script>
此时require可能相较于main.js中的代码率先执行,发生错误
未解决上述问题,可以将require方法写在main.js
内部:
require.config({
baseUrl: 'resources/lib',
paths: {
'jquery': 'jquery.min',
'angular': 'angular.min'
}
})
require(['jquery'], function ($) {
$('body').css({ 'backgroundColor': 'dodgerblue' });
})