`
lifesinger
  • 浏览: 23310 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

用 SeaJS 玩转 CoffeeScript 和 LESS

阅读更多
CoffeeScript 是一门可以编译成 JavaScript 的语言,语法轻巧优雅,社区非常活跃,是目前玩家最多、最有可能将 JavaScript 变成编译目标语言的新语言。可参考:JavaScript 的死与生

LESS 是一门可以编译成 CSS 的动态样式语言。CSS 设计之初是给设计师用的,是一门语法非常简洁优雅的声明式语言。但随着应用场景的复杂化,越来越多的 CSS 工作已经交由专业程序员来负责。在这种大背景下,LESS 等动态样式语言应运而生,为 CSS 的编写提供了变量、混合、计算和函数等功能。

目前 CoffeeScript 和 LESS 在 NodeJS 端有良好的开发体验,但在浏览器端的开发方式并不是很舒适。通过 SeaJS 的插件,可以让你在浏览器端的开发体验得到很大提升。

例子:CoffeeScript and LESS in SeaJS

中文文档:CoffeeScript 插件, LESS 插件

结合 SeaJS 的 map 功能,还可快速实现跨域调试,可参考 文本插件 的说明。

欢迎使用,欢迎交流反馈。
分享到:
评论
3 楼 hizhengfu 2011-10-28  
lifesinger 写道
这个是用来重新定位 base 的,和 require 解析 id 的逻辑关系不是很大。。。。。。

谢谢玉伯回复。看了文档,不清楚的地方也看了代码,上述意思是明白的。因为实际部署的时候文件夹一般都是在seajs外部的,估计更可能的是
   libs┬jquery/1.6.4/
       ├json/
       ├seajs/
这样的方式存放模块。如果没有引入seajs版本号的话那么base就是http://test.com/libs/seajs/了,这时候要require其它js的话地址写起来还比较麻烦。否则就要放在seajs文件夹下面。如果写版本号的话,如果引入seajs比较分散的话,修改也比较麻烦,当然这是不引入自动工具的前提下。如果去掉正则数字验证部分,那么base地址就是http://test.com/libs/这时候require就不用考虑路径问题了直接就是require('jquery/1.6.4/jquery');此时从你修改好的模块中下载下来的文件就可以直接使用了。所以建议这么修改。
2 楼 lifesinger 2011-10-28  
这个是用来重新定位 base 的,和 require 解析 id 的逻辑关系不是很大

modules 项目中,在 #jquery/1.6.4/jquery 前面的 #, 是表示该 id 不需要parse  alias

一般,我们需要会在项目中配置:

seajs.config({
  alias: {
    jquery: 'jquery/1.6.4/jquery'
  }
]);

如果在 jquery.js 中写成 define('jquery/1.6.4/jquery', ...)

其实上会被解析成:jquery/1.6.4/jquery/1.6.4/jquery
这样就不对了

因此给 id 添加了 # 约定,凡是以 # 开头的 id,表示不需要解析 alias
这和添加后缀的规则是一致的,require('./a') 默认情况下,会自动添加 .js 后缀,等同 require('./a.js')
如果写上  require('./a#') 的话,就不会添加默认后缀

# 在 seajs 里表示“停止”,表示不需要进行多余操作,理解了就很容易把握了

^o^

1 楼 hizhengfu 2011-10-28  
借个地方留言了。代码中
    // When src is "http://test.com/libs/seajs/1.0.0/sea.js", redirect base
    // to "http://test.com/libs/"
    var match = base.match(/^(.+\/)seajs\/[\d\.]+\/$/);
中match改为var match = base.match(/^(.+\/)seajs\/$/);是不是更好。这样以后如果
js文件夹-seajs
  -jquery
  -json
直接require('jquery/1.6.4/jquery-debug')这样就可以引入脚本了。而且目前模块化的代码中 define('#jquery/1.6.4/jquery-debug', [], factory);这样的也就不用修改了,这样改应该没有其它副总用吧。

相关推荐

    简易实现seajs模块转换成esmodules模块的脚本

    Seajs是早期广泛使用的CMD(Common Module Definition)规范的实现,而ES Modules则是现代浏览器和Node.js原生支持的模块系统。本文将详细介绍如何通过脚本将Seajs模块转换为ES Modules,并探讨这两种模块系统的差异...

    seajs js 模块加载器

    在实际开发中,SeaJS 可以与构建工具(如Gulp、Webpack)配合使用,进行模块的打包和优化,进一步提升加载效率。同时,SeaJS 社区还提供了许多插件,用于支持AMD模块格式、CSS模块加载、数据交互等功能,满足不同...

    seaJS框架简介和完整例子

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

    seajs官方小实例

    Seajs 的使用主要包括配置、模块定义和模块引用。在浏览器中,我们通常会通过 `<script>` 标签引入 seajs 的核心文件 `seajs.js`: ```html <script src="path/to/seajs.js"> ``` #### 配置(config) Seajs 提供...

    seajs手册,教程

    8. **文档阅读**:"seajs手册.docx"提供了详细的Seajs使用指南,包括基本概念、API介绍、配置选项、最佳实践等内容,是学习和掌握Seajs的重要参考资料。 9. **社区支持**:Seajs拥有活跃的开源社区,开发者可以在...

    seajs下载以及规范

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

    seajs_2.3.0以及学习文档

    1. **Seajs 使用指南**:详细讲解如何安装、配置和使用 Seajs,包括如何定义和引用模块,以及如何配置路径和插件。 2. **API 参考**:列出 `seajs.use`、`seajs.config`、`seajs.data` 等核心 API 的使用方法和参数...

    seajs-2.3.0.zip

    1. **与jQuery的配合**:Seajs可以方便地加载和使用jQuery,同时避免全局污染。 2. **与Sea.js插件的配合**:如seajs-data和seajs-style,可以加载JSON数据和CSS样式,扩展了Seajs的功能。 3. **与构建工具的集成*...

    seajs-5分钟上手

    本教程将带你快速了解并掌握Seajs的使用,让你在5分钟内对这个强大的工具有一个基本的认识。 **一、Seajs的基本概念** Seajs的核心理念是模块化,它允许我们将JavaScript代码分割成多个独立的模块,每个模块都有...

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

    Seajs 是一个基于浏览器的模块加载器,它...通过这个案例,你可以学习如何创建模块,如何设置和使用配置,以及如何在实际项目中整合 Seajs。逐步理解和实践这些知识点,对于掌握 Seajs 并在实际项目中运用将大有裨益。

    SeaJS与RequireJS区别

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

    seajs-2.2.3

    Seajs-2.2.3 是一个开源的 JavaScript 模块加载器,旨在为开发者提供简单、极致的模块化开发体验。...通过学习和熟练掌握 Seajs,开发者能够更好地组织和管理代码,提升项目的可维护性和开发效率。

    前端项目-seajs.zip

    【前端项目-seajs.zip】是一个包含前端开发工具的压缩包,主要关注的是Seajs模块加载器,这是一个专为Web...在实际开发过程中,理解并掌握Seajs的使用方法和原理,对于提升前端开发效率和项目管理能力具有重要意义。

    seajs源码阅读

    在解析模块路径时,Seajs使用`path`工具,该工具集成了路径操作方法,如`resolve`和`normalize`,帮助将相对路径转换为绝对路径。此外,Seajs还实现了模块ID的解析,以便正确地定位模块文件。 模块执行时,Seajs会...

    前端开源库-grunt-react-seajs

    在前端开发领域,开源库和工具的使用极大地提升了开发效率和代码质量。"grunt-react-seajs"就是一个这样的工具,它是一个专门为前端开发者设计的Grunt插件,旨在帮助开发者将React组件转换为SeaJS模块,使得在不支持...

    模仿seajs模块化加载的自行实现练习

    这是自己编写的模仿seajs模块加载的模块加载器,用于学习交流之用。大致模仿seajs的模块化加载实现。

    seajs相关模板

    Seajs还支持配置,可以通过`seajs.config`方法来设置路径、别名、预加载模块等,方便管理和组织项目中的依赖关系。 ```javascript seajs.config({ base: './js/', // 应用的基础路径 alias: { '$': 'jquery' }, /...

    seajs-2.2.0源码

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

    Bootstrap和seajs结合的分页器

    Bootstrap 和 SeaJS 结合的分页器是一种在 Web 开发中实现高效页面导航的方法,尤其适用于数据量大、需要分页展示的场景。Bootstrap 是一个流行的前端开发框架,提供了丰富的 UI 组件,如按钮、表单、网格系统等,而...

    CMD规范之seajs

    Seajs使用`define`函数来定义模块,它接受三个参数:模块标识(id),依赖的模块(deps)和模块的实现(factory)。模块标识通常是相对或绝对路径,用于区分不同的模块;依赖的模块是一个数组,列出当前模块需要的...

Global site tag (gtag.js) - Google Analytics