requirejs和r.js的心得
requirejs的GitHub:requirejs
r.js的GitHub:r.js
grunt-contrib-requirejs的GitHub:grunt-contrib-requirejs
- requirejs的一个典型配置,main.js
require.config({
 shim: {
 '$': {
 exports: 'Zepto' //zepto.js里面暴漏的全局变量
 },
 '_': {
 exports: '_'
 },
 'B': {
 deps: [
 '_' //依赖关系
 ],
 exports: 'Backbone'
 }
 },
 paths: {
 '$': 'zepto', //配置路径
 '_': 'underscore',
 'B': 'backbone'
 }
 });
 requirejs(['$',''], function(b) {
 debugger;
 });关于config.shim.exports这里有很好的解释:shim.exports 
- r.js的使用方法
node r.js -o baseUrl=src name=main out=dist/build.js optimize=none 这样用的话config.paths里面main.js里面的paths配置会无效,看这里的解释: r.js optimizer does not load paths defined by a require.config 
- 关于第2点写两遍paths是重复劳动,r.js里面有一个mainConfigFile参数,将命令行改成这样 - node r.js -o name=main mainConfigFile=src/main.js out=dist/build.js optimize=none - 为什么name和mainConfigFile都指向main呢,因为工程里配置文件和启动文件都是main.js,我们完全可以分开放, - src/config.js: - require.config({
 shim: {
 '$': {
 exports: 'Zepto'
 },
 '_': {
 exports: '_'
 },
 'B': {
 deps: [
 '_'
 ],
 exports: 'Backbone'
 }
 },
 paths: {
 '$': 'zepto',
 '_': 'underscore',
 'B': 'backbone'
 }
 });- src/main.js: - requirejs(['$',''], function(b) {
 debugger;
 });- 然后运行: - node r.js -o name=main mainConfigFile=src/config.js out=dist/build.js optimize=none - r.js的配置文件说明看这里 
- requirejs里嵌套依赖的问题:
 如果main.js不是这样依赖于1.js,而是像下面这样:requirejs(['$'], function(b) {
 requirejs(['1'],function() {
 });
 });那么用r.js生成的文件里是不会包含1.js的内容的,这种情况下要加上参数findNestedDependencies node r.js -o mainConfigFile=src/config.js name=main out=dist/build.js optimize=none findNestedDependencies=true 
- 引用外部js的问题
require.config({
 shim: {
 '$': {
 exports: 'Zepto'
 },
 '_': {
 exports: '_'
 },
 'B': {
 deps: [
 '_'
 ],
 exports: 'Backbone'
 }
 },
 paths: {
 '$': 'http://apps.bdimg.com/libs/zepto/1.1.4/zepto',
 '_': 'underscore',
 'B': 'backbone'
 }
 });zepto引用外部的js文件了,r.js无法访问 $ node r.js -o mainConfigFile=src/config.js name=main out=dist/build.js optimize=none findNestedDependencies=true Tracing dependencies for: main 
 Cannot optimize network URL, skipping: http://apps.bdimg.com/libs/zepto/1.1.4/zepto.js E:/chengzhichao/tmp/test_grunt/dist/build.js
 ----------------
 E:/chengzhichao/tmp/test_grunt/src/.js
 E:/chengzhichao/tmp/test_grunt/src/main.jsr.js只把main.js,1.js弄到了build.js里面,这种情况下应该怎么办呢? 
 a.忽略zepto.js的path
 b.将config.js包含进生成的build.js里面node r.js -o mainConfigFile=src/config.js name=main out=dist/build.js optimize=none findNestedDependencies=true include=config.js paths.$=empty: 
- grunt-requirejs配置基本照搬r.js的配置
requirejs和r.js的心得的更多相关文章
- requireJs和r.js压缩工具
		上面release是执行命令 node r.js -o build.js 生成的,需要切换到目录require/tools下面,也就是 有r.js和build.js的目录,才能执行命令 代码目录如上: ... 
- requirejs实验002. r.js合并文件. 初体验.
		requirejs的官网上有介绍如何使用r.js合并,压缩文件的.http://requirejs.org/docs/optimization.html https://github.com/jrbu ... 
- 转:requirejs打包压缩r.js使用示例
		为了应对日益复杂,大规模的JavaScript开发.我们化整为零,化繁为简.将复杂的逻辑划分一个个小单元,各个击破.这时一个项目可能会有几十个甚至上百个JS文件,每个文件为一个模块单元.如果上线时都是 ... 
- requirejs 使用实例r.js打包
		在这里,请先看基础文章与相关技术文档: 安装: npm init npm install requirejs --save npm install jquery@1.11.1 --save 创建基本目 ... 
- requirejs原理深究以及r.js和gulp的打包【转】
		转自:http://blog.csdn.net/why_fly/article/details/75088378 requirejs原理 requirejs的用法和原理分析:https://githu ... 
- requireJS中如何用r.js对js进行合并和压缩css文件
		我运行的环境是windows+node.js,首先是用npm安装requirejs(全局安装,即使用 'npm install requirejs -g',这样方便在各个目录调用),接着就是下载r.j ... 
- requireJS的优化工具 ---- r.js
		requireJS是javascript的模块加载器,是基于AMD规范实现的. r.js是其提供的对模块进行打包和构建的一个工具 下载 r.js 创建r.js 的配置文件 build.js build ... 
- requirejs的打包工具r.js
		不建议用命令行,还是用配置文件比较方便--build.js. 我的build.js文件内容大概如下: ( { appDir : './', baseUrl : './scripts', dir : ' ... 
- 转: requirejs压缩打包r.js使用示例 2 (~~很详细的教程)
		这一篇来认识下打包工具的paths参数,在入门一中 就介绍了require.config方法的paths参数.用来配置jquery模块的文件名(jQuery作为AMD模块时id为“jquery”, 但 ... 
随机推荐
- sql server 利用首字母拼音排序和笔画排序的语句
			--按笔画排序 select * from Student order by Sname COLLATE Chinese_PRC_Stroke_CS_AS_KS_WS --按字母拼音排序 select ... 
- 数据类型和Json格式[转]
			1. 前几天,我才知道有一种简化的数据交换格式,叫做yaml. 我翻了一遍它的文档,看懂的地方不多,但是有一句话令我茅塞顿开. 它说,从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一 ... 
- 面向对象设计模式之TemplateMethod模板方法(行为型)
			动机:在软件构建过程中,对于某一项任务,他常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用之间的关系)而无法和任务的整体结构同时实现:如何在确定稳定操作结构 ... 
- php把excel数值格式转成日期格式问题
			在excel中:40847对应2011-10-31,是日期的数值型表现形式. 在PHP中,echo date('Y-m-d H:i:s',40847);//结果1970-01-01 11:52:30 ... 
- 编写可维护的javascript代码--- 2015.11.21(基本格式化)
			1.1 每行的编码需要控制在80字符. 1.2 改用:的地方必须用上. 1.3 缩进用2个制表符,不过4个也可以. 1.4 当代码一行显示不全需要折行显示,这里我暂且假定缩进为4个字符. 1.5 如果 ... 
- 【行为型】TemplateMethod模式
			模板方法意图是为算法定义好骨架结构,并且其中的某些步骤延迟到子类实现.该模式算是较为简单的一种设计模式.在实际中,应用也较为频繁.模式的类关系图参考如下: 模式的编码结构参考如下: namespace ... 
- 集合及特殊集合arrayList
			1,运用集合 arrayList 首先复制Colections加 : 创建arrayList ar =new arrayList(); ArrayList具体提供的功能:属性 ... 
- Java中堆内存(heap)和栈内存(stack)的区别
			在Java代码中,常常会使用到这样的类的声明实例化: Person per = new Person(); //这其实是包含了两个步骤,声明和实例化 Person per = null; //声明一个 ... 
- plugin
			http://wicky.nillia.ms/headroom.js/ http://makotot.github.io/sidebar/ http://www.nodebeginner.org/in ... 
- perl 正则详解
			用/s 来匹配任意字符 默认情况下,点号(.)无法匹配换行符,这对大多数单行匹配的情况是合适的. . 圆点用于匹配除换行符外的任何单个字符 + 意味着一个或多个相同的字符 .+ 匹配任意单个字符至少一 ... 
