javascript – Requirejs – 通过不同的模块共享相同的依赖项
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – Requirejs – 通过不同的模块共享相同的依赖项,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1274字,纯文字阅读大概需要2分钟。
内容图文
想象一下这个项目脚手架:
> utils.js
> module1 / controllers.js
> module1 / services.js
> module2 / controllers.js
> module2 / services.js
utils.js
define([], function(){ /* My utils functions */ });
模块1 / controllers.js
define(['../utils'], function(utils){ /* Module1 stuff */ });
模块2 / controllers.js
define(['../utils'], function(utils){ /* Module2 stuff */ });
这在非优化上下文中非常有效,因为utils.js只下载一次,无论是来自module1还是module2.但是我需要在JS文件中优化和打包每个模块.
为了得到这个,我在每个模块中添加了一个main.js文件,例如:
模块1 / main.js
define(['./controllers', './services.js'], function(){});
现在我开始使用优化工具,这是我的app.build.js
...
modules: [
{ name: "module1/main" },
{ name: "module2/main" },
]
...
好吧,我得到了我想要的行为,但我发现这两个模块都包含了utils.js代码.这种行为是正确的,因为您无法保证加载顺序.
所以,这些是我的问题:
>对此存在任何智能解决方案吗?
>如果不能跳过,有人知道requirejs是如何工作的吗?这种策略会产生任何问题吗?
解决方法:
最后,我使用构建脚本中的exclude选项得到了答案:
...
modules:[
{ name: 'utils' },
{ name: 'module1/main', exclude: ['utils'] }
{ name: 'module2/main', exclude: ['utils'] }
]
...
这样我就为utils创建了一个独立的模块,并避免使用“exclude”选项将其包含在其他模块代码中.此方法强制您手动编写此类“全局”依赖项,但它可以正常运行:)
内容总结
以上是互联网集市为您收集整理的javascript – Requirejs – 通过不同的模块共享相同的依赖项全部内容,希望文章能够帮你解决javascript – Requirejs – 通过不同的模块共享相同的依赖项所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。