最近又换部门了,好频繁地说。。。于是把这段时间搞的小工具们简单整理了一下,作了一个小的总结。这次用一个简单业务demo来向大家介绍一下Javascript模块化开发的方式和自动化合并压缩的一些自己的处理。

模块化开发已经有一些标准(AMD/CMD)而且现在也算比较普及了,其为开发人员提供了很大的方便。模块化开发可以按结构整理代码,将一些功能分小颗粒来实现,这样的代码维护起来会方便很多,也更灵活,更容易在一定程度上去满足各种需求的变更。

比如这是demo中的代码结构:

  

  先说page目录,这里的每一个js文件对应于一个页面,这就是页面js的入口文件,所有的功能模块通过对应的js去加载。

  general目录就是一般的针对业务的一些功能,比如这里的picView就是一个图片查看功能,该目录的定位是与业务紧密相关。

  common目录就是相对业务要底层一些,属于基础组件,它可以在各业务模块中使用,组成业务相关的功能。

  utils目录其实就是一个函数库,也跟业务没关系,只是实现一般常用小颗粒功能的封装。

  lib目录就是放的第三方的一些库,比如jquery,requirejs

  conf就是进行一些项目的配置

这样我们就可以把各功能按其职责分别扔到相应的目录下以实现各模块的分类。

我们在开发中的时候就可以像这样:

<script type="text/javascript" src="../js/lib/require.js"></script>
<script type="text/javascript" src="../js/conf/requireConf.js"></script>
<script type="text/javascript" src="../js/page/index.js"></script>

引入页面代码后,在页面入口文件进行开发了。

开发确实方便,不过上线的话,肯定不能直接这么上线,因为从前端优化的角度上讲,一般情况下我们是需要尽量减少请求的。现在的情况是模块越多,我们的请求肯定也会很多,性能就会受到影响。虽然模块化加载工具已经提供了处理方法(像requireJS有r.js来进行编译),但始终还是要依赖于require.js引导文件,这样会有点多余。于是我的处理方式就是将这些模块文件按页面合并后,再进行代码原生化处理,这要就去除了define/require的依赖,也就不再需要引入像require.js这样的引导文件(虽然在代码编写中需要有一些约束,不过还是能满足大部分情况吧。),使用方法就是在项目的build目录里进行grunt build就行了,具体可以在demo中尝试。

demo地址:

  https://github.com/randomyang/javascript-module

而且大家可以根据代码里的注释自己切换不同情况看效果。

最后说明一下,这次讨论的应用场景只适合单文件一次引入的时候,如果是多文件或有业务交互中异步引入的方式,暂不在这次讨论之列,这里只是给大家提供一种开发方式的选择,谢谢。

Javascript 模块化开发上线解决方案的更多相关文章

  1. Javascript模块化开发-轻巧自制

    Javascript模块化开发-轻巧自制 一.前言现在javascript的流行,前端的代码越来越复杂,所以我们需要软件工程的思想来开发前端.模块化是必不可少的,这样不仅能够提高代码的可维护性.可扩展 ...

  2. Javascript模块化开发,使用模块化脚本加载工具RequireJS,提高你代码的速度和质量。

    随着前端JavaScript代码越来越重,如何组织JavaScript代码变得非常重要,好的组织方式,可以让别人和自己很好的理解代码,也便于维护和测试.模块化是一种非常好的代码组织方式,本文试着对Ja ...

  3. JavaScript模块化开发整理

    在网上已经有很多关于模块化开发的文章了,这里还是按照自己的理解来整理一下. 随着项目文件的越来越大和需求的越来越贴近现实(我发现现在客户不如:一个领导说我要审批你们报上来的资料,系统发布以后用的还不错 ...

  4. JavaScript模块化开发的那些事

    模块化开发在编程开发中是一个非常重要的概念,一个优秀的模块化项目的后期维护成本可以大大降低.本文主要介绍了JavaScript模块化开发的那些事,文中通过一个小故事比较直观地阐述了模块化开发的过程. ...

  5. JavaScript模块化开发&&模块规范

    在做项目的过程中通常会有一些可复用的通用性功能,之前的做法是把这个功能抽取出来独立为一个函数统一放到commonFunctions.js里面(捂脸),实现类似于snippets的代码片段收集. fun ...

  6. 详解JavaScript模块化开发

    什么是模块化开发? 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来js得到重视,应用也广泛起来了,jQuery,Ajax,Node.Js,MVC,MVVM等 ...

  7. 2.精通前端系列技术之JavaScript模块化开发 seajs(一)

    在使用seajs模块化开发之前,直接在页面引用js会容易出现冲突及依赖相关的问题,具体问题如下 问题1:多人开发脚本的时候容易产生冲突(比如全局参数冲突,方法名冲突),可以使用命名空间降低冲突,不能完 ...

  8. JavaScript模块化开发实例

    最近接触了一些JavaScript开发的例子,在这里与大家一起分享一下: 例子:当我们一个团队在写Js文件的时候,你一个人写的JS代码自己可以看懂也可以维护,但是别人想对你的JS进行扩展的话,如果都在 ...

  9. (转)详解JavaScript模块化开发

    https://segmentfault.com/a/1190000000733959 什么是模块化开发? 前端开发中,起初只要在script标签中嵌入几十上百行代码就能实现一些基本的交互效果,后来j ...

随机推荐

  1. linux清理内存命令

    1.清理前内存使用情况 free -m 2.开始清理  echo 1 > /proc/sys/vm/drop_caches3.清理后内存使用情况 free -m4.完成! 查看内存条数命令: # ...

  2. [书目20160624]Android应用开发从入门到精通

    卢海东 著 第1章 揭开神秘面纱——Android系统简介 1   1.1 认识Android系统 2   1.1.1 Android成长历程 2   1.1.2 发行版本 3   1.1.3 得到大 ...

  3. [转]ORACLE DBA TRANSACTIONS

    本文转自:http://blog.sina.com.cn/s/blog_66f845010100qelf.html 一, Transaction control 默认Transaction 由修改数据 ...

  4. [Top-Down Approach] Chatper 4 Notes

    4.2 Virtual Circuit and Datagram Networks VC Set up connection Exchange data Free the connection The ...

  5. Beyond IT

    Know Yourself <开讲啦> 20160306 潘建伟:探索的动机

  6. Java Web之请求和响应

    Servlet最主要作用就是处理客户端请求并作出回应,为此,针对每次请求,Web容器在调用service()之前都会创建两个对象,分别是HttpServletRequest和HttpServletRe ...

  7. Stanford coursera Andrew Ng 机器学习课程编程作业(Exercise 1)

    Exercise 1:Linear Regression---实现一个线性回归 在本次练习中,需要实现一个单变量的线性回归.假设有一组历史数据<城市人口,开店利润>,现需要预测在哪个城市中 ...

  8. Maven系列二setting.xml 配置详解

    文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${use ...

  9. [No00004C]软件工程师的创业陷阱:接私活

    我本身是 Java 工程师出身,写代码至今已超过 15 年,创业也超过 10 年,曾经外包过很多项目给别人,也接过很多外包的项目,现在不接了,只经营电子报发送平台,在二年内累积超过 5000 家企业用 ...

  10. [No000026]365种创业、办公、和生活成长的精华资源

    只需要具备以下技能,人人都可以成为企业家:经得起失败的考验,思维活跃,新点子不断,能够脚踏实地把新点子转化为产品,并在这个过程中坚持不懈,百折不挠,即使跌倒了,也要及时从失败中学习,迅速投入到下一次冒 ...