精华 ionic 结合 requirejs 实现模块化,有什么利弊?
发布于 2年前 作者 Thomsen 2781 次浏览 来自 问答

有通过requirejs实现ionic应用模块化的吗?

这样做会有什么利弊,欢迎大家探讨?

7 回复

angular不已经是模块化了么

angular module 是延迟执行,可以不考虑 js 的依赖顺序。好处是 js 可以并发加载,坏处是不能按需加载、并且与第三方 js 的结合变得麻烦,需要 ng 化。

对于 ionic 做的 app ,不建议使用 requirejs 等来管理 js 的依赖,直接使用 angular 的 module 延迟执行机制,然后把所有的 js 一股脑的打包成一个 mini 的吧。

@lingyired 这样问题来了,通过ionic直接打包,应该是不能直接合并js的吧!难道需要再打包前合并,可又不影响开发。

@Thomsen 是的,对于这种情况,就需要 gulp + cordova 了。 事实上已经有人做了这个工作了: http://www.thomasmaximini.com/2015/02/10/speeding-up-ionic-app-development-with-gulp.html

不过需要项目去适应这种模式

@lanceli 谢谢提供案例!

可在运行grunt serve时,报错了(必须要用–force吗 ) – 已经找到解决方式(https://github.com/lanceli/cnodejs-ionic/issues/3) ✗ grunt serve Running “serve” task

Running “clean:dist” (clean) task

Running “clean:server” (clean) task

Running “ngconstant:development” (ngconstant) task Creating module cnodejs.config at app/js/config.js…OK

Running “wiredep:app” (wiredep) task

Running “wiredep:sass” (wiredep) task

Running “concurrent:server” (concurrent) task

Warning: There are more tasks than your concurrency limit. After this limit is reached no further tasks will be run until the current tasks are completed. You can adjust the limit in the concurrent task options

Running "copy:styles" (copy) task


Done, without errors.


Execution Time (2015-05-29 07:24:35 UTC)
loading tasks   5ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇ 26%
copy:styles    13ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 68%
Total 19ms
    Warning: Running "compass:server" (compass) task
Warning: Couldn't find the `compass` binary. Make sure it's installed and in your $PATH Use --force to continue.

Aborted due to warnings.


Execution Time (2015-05-29 07:24:36 UTC)
loading tasks   13ms  ▇▇▇▇▇▇▇▇▇ 19%
compass:server  52ms  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 76%
Total 68ms Use --force to continue.

    Aborted due to warnings.

@Thomsen 赞 工具怎么用能干什么 我就不多解释了

回到顶部