为什么要使用 require.js
RequireJS is a JavaScript file and module loader. It is optimized for in-browser use, but it can be used in other JavaScript environments, like Rhino and Node. Using a modular script loader like RequireJS will improve the speed and quality of your code.
├── dist
| ├── css
| | ├── unsemantic.min.css #栅栏CSS
| | └── {your.css} #你的样式
| ├── addons
| | ├── require.js
| | ├── template-simple.js #渲染组件
| | └── {third-party.js} #三方js
| ├── js
| | └── {your.js} #你自己的js
| └── app.js #全局入口
└── index.html #
"use strict";
var app = (function () {
// 这里定义版本号 如果需要更新时可以快速重置缓存
var _version= "v=1";
var _fn = () => { };
var listen = function () {
var script = document.createElement("script");
script.setAttribute("src", "/dist/addons/require.js?" + _version)
script.setAttribute("onload", "app.onload()");
document.body.appendChild(script);
};//end listen
var onload = function () {
requirejs.config({
urlArgs: _version,
baseUrl: '/dist/js',
paths: {
addons: '/dist/addons'
}
});
// 这里引用全局公共js
requirejs(["addons/template-simple","addons/{third-party}"], function () {
_fn();
});
};//end onload
var run = function (fn) {
if (fn) _fn = fn;
listen();
};//end run
return {
onload: onload,
run: run
};
})();
<!DOCTYPE html>
<html lang="cn">
<head>
<meta charset="UTF-8">
<title>title</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="description" content="Description">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="/dist/css/unsemantic.min.css">
<link rel="stylesheet" href="/dist/css/{your.css}">
</head>
<body>
<div id="app"></div>
<!-- ========= script ========= -->
<script src="/dist/app.js"></script>
<script>
app.run(function(){
// on load success
// 这里引用此页面需要的js
requirejs(["{your}"],function(t){
console.log(typeof(t),t);
});
});
</script>
</body>
</html>