我最近在开发一个 Web 应用,希望将其分解为模块化的结构。我进行了搜索,并了解到 RequireJS 是最好的选择。我阅读了相关文档和教程,并编写出下面这段代码:
requirejs.config({
baseUrl: "js/lib",
shim: {
'jquery-1.12.1.min': ['jquery-1.12.1.min'],
'materialize.min': ['materialize.min'],
'knockout-3.4.0': ['knockout-3.4.0'],
'pouchdb-5.3.0.min': ['pouchdb-5.3.0.min']
},
waitSeconds: 0,
paths: {
'jquery-1.12.1.min': 'jquery-1.12.1.min',
'materialize.min': 'materialize.min',
'knockout-3.4.0': 'knockout-3.4.0',
'pouchdb-5.3.0.min': 'pouchdb-5.3.0.min',
}
});
require(["jquery-1.12.1.min", "knockout-3.4.0", "materialize.min", "pouchdb-5.3.0.min"], function($, ko) { //My main functions and other stuff ... }
我的索引如下:
<script data-main="js/main" src="js/lib/require.js"></script>
<script type="text/javascript" src="js/converter.js"></script>
但是,我的 Jquery
、KO
、materialize.css
和 pouchdb
在 Chrome 开发工具的网络中没有加载:
我还阅读了关于设置依赖项的 shim 配置,希望它们按照那个顺序加载。我真的不知道我缺少了什么,任何帮助都将不胜感激。
文件夹结构 如下:
js:
lib:
->jquery-1.12.1.min.js
->knockout-3.4.0.js
->pouchdb-5.3.0.min.js
->materialize.min.js
->require.js
main.js
converter.js
pouchdb: { deps: ['jquery','knockout'] }, knockout: { exports: 'ko' }, materialize: { deps: ['jquery','hammer'] }, jquery: { exports: '$' }
- Muli