问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何利用Require.Js管理多页面站点文件

发布网友 发布时间:2022-04-25 15:34

我来回答

1个回答

热心网友 时间:2022-04-21 05:43

直接上例子,自己参考一下吧。我复制粘贴的,对于这个不太懂。

RequireJS 的作者 James Burke ,做了很多有效组织代码,利用 RequireJS Optimizer 压缩优化代码的努力,有些例子是我经常提到的: example-multipage-shim. , example-multipage 。但我更喜欢用 shim 版本(它支持非 AMD 方式定义的模块载入)的 RequireJS,因为一个项目里面似乎总有几个非 AMD 的脚本文件。

如果你在用RequireJs创建一个单页站点,那么你可能会这样定义你的script标签:

<!--This sets the baseUrl to the "scripts" directory, and
loads a script that will have a mole ID of 'main'-->
<script data-main="scripts/main.js" src="scripts/require.js"></script>
data-main 属性可以很方便的用来设置 RequireJs 的 baseUrl property ,通常,你也可以在 main.js 里面加上一些配置,比如,你要加载一个第三方的js库,你要创建一个路径以便引用。因为模板里的每一个单页的 mian-* 文件都不同,所以,我们可以把配置信息放在 common.js 里:

1 //The build will inline common dependencies into this file.
2
3 requirejs.config({
4 baseUrl: './js',
5 paths: {
6 'jquery': 'vendor/jquery',
7 'bootstrap': 'vendor/bootstrap'
8 },
9 shim: {
10 'bootstrap': ['jquery']
11 }
12 });
除了 common.js,我还在 app/models 下创建了BasicModel文件以表明common.js是公用的,并把BasicModel放进common.js里。

编译

编译之前需要有一个 option.js 来指定哪些文件需要编译,哪些不需要:

1 mole.exports = {
2 appDir: 'www',
3 baseUrl: 'js/',
4 mainConfigFile: 'www/js/common.js',
5 dir: 'www-release',
6 moles: [
7 {
8 name: 'common',
9 include: [
10 'app/models/basicModel',
11 'jquery',
12 'bootstrap'
13 ]
14 },
15 {
16 name: 'app/main-about',
17 exclude: ['common']
18 },
19 {
20 name: 'app/main-contact',
21 exclude: ['common']
22 }
23 ]
24 };
上面的代码中,首先把所有的文件用 include 方法包含进来,然后把不需要的文件用 exclude 方法排除出去。RequireJs 会根据 exclude 的参数配置理出嵌套依赖关系并把文件排除掉。因为 bootstrap 已经编译合并进 common.js 了,所以不需要单独为 main-about 或 main-contact 再 exclude 掉 bootstrap。

在执行这些操作之前,你需要执行一个 npm 安装。首先你要确保安装了 grunt 工具,安装完成后执行 grunt 命令压缩打包。如果打包顺利完成,会在www-release/build.txt 里看到如下被打包的文件清单:

css/bootstrap-responsive.css
----------------
css/bootstrap-responsive.css

css/bootstrap.css
----------------
css/bootstrap.css

css/style.css
----------------
css/style.css

js/common.js
----------------
js/common.js
js/app/models/basicModel.js
js/vendor/bootstrap.js

js/app/main-about.js
----------------
js/app/models/aboutModel.js
js/app/main-about.js

js/app/main-contact.js
----------------
js/app/models/contactModel.js
js/app/main-contact.js
www-release/common.js 里面试一大块压缩后的代码,代码里就包含了 BasicModel, Bootstrap, jQuery, and 初始配置代码。要配置 about.html ,只需要按下面的顺序加载文件即可:

1 <script src="./js/vendor/require.js"></script>
2 <script type="text/javascript">
3 // Load common code that includes config,
4 // then load the app logic for this page.
5 require(['./js/common'], function (common) {
6 // ./js/common.js sets the baseUrl to be ./js/
7 // You can ask for 'app/main-about' here instead
8 // of './js/app/main-about'
9 require(['app/main-about']);
10 });
11 </script>
通过层层引入 RequireJs --> common.js --> main-about.js 实现了明晰简便的代码管理方式。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
夫妻养狗狗把谁当主人 两人同养狗认谁当主人 什么蔬菜和水果可以美容祛斑呢? vivox60怎么查看参数配置详情 怎样查看vivo手机的屏幕参数? vivo手机怎么看手机参数 vi##手机怎么看配置? 义乌到湖州没有直达快客???必须到南浔?? 湖州到绍兴的汽车有几班? 注销驾考需要本人吗 求!延时药物哪个牌子正规效果好? require.js的用法 哪里可以买到效果好的延时药? 如何将requirejs风格的文件,打包成库 药店一般延时药有哪些 requirejs 怎么实现通过变量名加载 太原哪里能买到延时药,,,延续时间长的,,每次几分钟,,自己都觉得不好意思,,要正经的,,,不要太 客户端页面能做到用哪个js就下载哪一个吗? 哪种药延时效果好 require.js加载文件怎么加载不进来?求帮忙。。。基本原理都清楚!!!_百... 药店有哪些正规延时药 requirejs 怎么导入echarts 延时药`延时药品`延时药物有哪些?? requirejs的init怎么用 药房有男性延时的药吗 如何使用requirejs加载html require方法在js编译后被注释 外用延时药哪有卖的啊。我和女友都是第一次。4。5次了都是没插进去就... 能够延时的药物有哪些 为什么要用require加载js 有谁知道哪种延时药最好,最有效啊? labjs,requirejs,sea.js 哪个最好用?为什么 哪种延时药最好?很想试试,找不到好的... 男性延时哪种最好,比较有效的男性延时药 requirejs是什么? 哪种药延时效果好? 使用requirejs时怎么解决文件版号和增量更新的问题 现在管用最快的壮阳药又能延时的是啥药?哪里有?要么有什么延时办法也可以。谢谢提供信息。 requirejs引入问题 最好的延时药谁知道是哪种?? 药伟哥哪里买,延时三十分钟以上的 家用买i几? 5000块钱家用买i几CPU的电脑&#xF5A5;&#xFE0F;最好? 大学生买电脑用i几的够了 电脑I几好还是E几好 电脑处理器买i几的好 现在买电脑应该买I5还是I7处理器的呢?现在最先进的处理器是I几啊? 上了i几的电脑比没有上i的好吗? 看图写话说话,太空之旅。 看图写话太之旅驾驶宇宙飞船游玩奇妙