`
beckjacy
  • 浏览: 12432 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

seajs版本号添加

 
阅读更多

http://lifesinger.wordpress.com/2011/08/01/best-practice-of-version-management/

SeaJS 里版本号和时间戳管理的最佳实践

 

with 24 comments

用 seajs 组织项目,上线后,经常需要更新特定文件或所有文件的时间戳,以清空浏览器缓存。最简单的方式是:

define(function(require, exports) {
  var a = require('path/to/a.js?20110801');
});

 

这种方式很简单直观,弊端也很明显:文件一多,时间戳会分散在各个文件,维护起来不方便。

第二种方式是利用 alias:

seajs.config({
  alias: {
    'jquery': 'jquery/1.6.2/jquery',
    'backbone': 'backbone/0.5.1/backbone',
    'a': 'a.js?20110801',
    'b': 'b.js?20110801'
  }
});

 

这种方式用来维护 jquery 等类库模块的版本号是非常方便的。但用来加时间戳,文件一多时,依旧不方便。

第三种方式是利用 map:

seajs.config({
  'map': [
    [ /^(.*\.(?:css|js))(.*)$/i, '$1?20110801' ]
  ]
});

 

这种方式,用来批量更新时间戳是最方便的。

最佳实践

假设文件存放路径如下:

http://example.com/libs/seajs/1.0.0/sea.js
http://example.com/libs/jquery/1.6.2/jquery.js
http://example.com/libs/backbone/0.5.1/backbone.js
http://example.com/app/xxx/a.js
http://example.com/app/xxx/b.js
http://example.com/app/xxx/c.css

 

为了方便版本和时间戳管理,建议配置如下:

config.js:

seajs.config({
  alias: {
    'jquery': 'jquery/1.6.2/jquery',
    'backbone': 'backbone/0.5.1/backbone'
  },
  map: [
    [ /^(.*\/app\/xxx\/.*\.(?:css|js))(?:.*)$/i, '$1?20110802' ]
  ]
});

 

这样配置好后,在具体模块代码里,就不再需要考虑时间戳了:

 

define(function(require, exports) {
  var $ = require('jquery');
  var BB = require('backbone');

  var a = require('./a');
  var b = require('./b');
  require('./c.css');

  // ...
});
分享到:
评论

相关推荐

    seajs官方小实例

    "bootstrap": "bootstrap.min" // 模块别名,这里将 bootstrap 指向 min 版本 } }); ``` #### 模块定义(define) 模块定义使用 `seajs.define()` 方法,其中可以指定模块 ID、依赖模块和模块实现。例如: ```...

    seajs_2.3.0以及学习文档

    Seajs 版本 2.3.0 是其稳定的一个版本,提供了更完善的特性和优化。 在JavaScript的世界中,模块化编程是提高代码复用性、可维护性和组织性的关键。传统的 `<script>` 标签引入方式容易导致全局变量污染和依赖关系...

    seajs-5分钟上手

    Seajs是中国开源社区推出的一款浏览器端的模块加载器,它借鉴了CommonJS的规范,但针对浏览器环境进行了优化,使得JavaScript在浏览器端也能实现模块化的开发。本教程将带你快速了解并掌握Seajs的使用,让你在5分钟...

    seajs js 模块加载器

    SeaJS 是一款专为Web端设计的JavaScript模块加载器,它的出现是为了解决JavaScript在浏览器环境中的组织和管理问题。随着Web应用的复杂度不断提升,JavaScript代码的组织和依赖管理变得至关重要,SeaJS 提供了一种...

    seajs-2.3.0.zip

    Seajs 2.3.0是该库的一个稳定版本,提供了丰富的功能和优化。 一、Seajs核心概念与功能 1. **模块化**:Seajs遵循CommonJS规范,通过`require`引入模块,`exports`导出模块,实现了JavaScript代码的模块化,使得...

    seajs下载以及规范

    要在项目中使用Seajs,首先需要从官方网站或者其他可靠的源获取最新版本的Seajs文件。下载完成后,将`seajs`文件放置在项目的公共目录下,通常是`js`或`lib`目录。确保这个位置能让所有需要使用Seajs的页面都能访问...

    seajs入门完整案例,适合新手学习

    7. **模块版本管理**:Seajs 支持模块版本控制,可以通过版本号确保不同版本的模块并存,方便升级和回滚。 8. **插件系统**:Seajs 有丰富的插件支持,如 seajs-text 插件用于加载文本资源,seajs-style 插件加载 ...

    seajs手册,教程

    Seajs是中国开源社区发展出来的一款轻量级的前端模块化加载器,它的出现是为了应对JavaScript在浏览器端组织和管理代码的复杂性。本手册将详细阐述Seajs的核心概念、使用方法以及如何通过它来构建高效的前端应用。 ...

    seajs-2.2.3

    在 Seajs-2.2.3 版本中,我们可以通过以下方式引入模块: ```javascript seajs.use('./path/to/module', function(module) { // 在这里可以使用 module 的方法或属性 }); ``` 模块内部,我们可以使用 `define` ...

    seajs-2.2.0源码

    本文将深入解析Seajs 2.2.0版本的源码,探讨其核心机制、设计理念以及如何使用它来组织和管理前端项目。 首先,Seajs的核心功能是解决JavaScript的异步加载问题,它允许开发者按照模块化的方式来编写代码,每个模块...

    seajs相关模板

    将其转换为Seajs兼容的版本: ```javascript define(function(require, exports, module) { var $ = require('jquery'); $.fn.myPlugin = function() { // 插件的逻辑代码 }; module.exports = $; }); ```...

    seajs源码阅读

    **Seajs源码阅读** Seajs是一款轻量级的JavaScript模块加载器,它遵循CommonJS规范,使得在浏览器端也能实现模块化的开发。通过阅读Seajs的源码,我们可以深入理解JavaScript模块化的工作原理,以及如何实现一个...

    seaJS框架简介和完整例子

    SeaJS 是一个轻量级的前端模块加载器,它的出现是为了改善JavaScript在浏览器环境中的组织和加载方式。本文将深入探讨SeaJS的基本概念、工作原理以及如何通过一个完整的例子来理解其用法。 SeaJS的核心理念是遵循 ...

    CMD规范之seajs

    CMD规范之Seajs Seajs是一款轻量级的前端模块加载器,它遵循CommonJS规范,使得JavaScript在浏览器端也能实现模块化的开发。这个规范主要包含模块定义、模块加载和模块化开发的思想,大大提高了代码的可维护性和...

    seajs源代码

    在seajs-2.2.1版本中,我们可以找到以下几个核心概念和功能: 1. **模块标识符**:Seajs使用URI(统一资源标识符)作为模块标识,允许开发者通过URL路径来引用模块。例如,`seajs.use('path/to/module')`。 2. **...

    SeaJS与RequireJS区别

    **SeaJS 和 RequireJS 是两种广泛使用的 JavaScript 模块加载器和依赖管理工具,它们的主要目的是解决 JavaScript 在浏览器端的异步加载和模块化问题。** **SeaJS** SeaJS 是一个轻量级的模块加载器,由中国淘宝...

    前端开源库-grunt-react-seajs

    "grunt-react-seajs"就是一个这样的工具,它是一个专门为前端开发者设计的Grunt插件,旨在帮助开发者将React组件转换为SeaJS模块,使得在不支持ES6模块语法的环境中也能顺利地使用React组件。下面我们将深入探讨这个...

    seajs-css.js

    seajs-css.js 用于seajs加载css文件,上课用的课件资源,大家有需要的可以随时下载。版本是非常好用的,作为一个学习模块化我们必须的知识插件

    前端项目-seajs.zip

    【前端项目-seajs.zip】是一个包含前端开发工具的压缩包,主要关注的是Seajs模块加载器,这是一个专为Web设计的模块化解决方案。Seajs在前端开发领域扮演着重要角色,因为它提供了一种组织和管理JavaScript代码的...

    knockout seajs .net中实战应用

    总的来说,"knockout seajs .net中实战应用"意味着在.NET开发中,利用Knockout.js的强大数据绑定能力和Sea.js的模块化管理,可以构建出高效、响应式的前端应用。通过Ajax通信,前端和后端能够无缝协作,提供流畅的...

Global site tag (gtag.js) - Google Analytics