README.md in seajs-rails-0.0.9 vs README.md in seajs-rails-0.0.10

- old
+ new

@@ -1,104 +1,122 @@ -# Sea.js for Rails 3.x - -Integrates Sea.js into the Rails 3 Asset Pipeline. - -提供一种将 Sea.js 与 Asset Pipeline 结合起来的方式,底层通过 spm-chaos-build 来实现 - ------ - -## 安装 - -首先请安装好 spm-chaos-build ,参见 https://github.com/edokeh/spm-chaos-build - - $ npm install spm -g - $ npm install spm-chaos-build -g - -然后在 Gemfile 中添加这个 gem - - gem 'seajs-rails' - -并执行命令 - - $ bundle - -## 使用方式 - -### 初始化 - -执行以下命令初始化项目 - - $ rake seajs:setup - -这会安装最新版本的 Sea.js 到相应目录下,并在 config 目录生成 seajs_config.yml - -配置文件说明: - -```yaml -seajs_path: seajs/seajs/2.0.0/sea.js # 这是配置 seajs 的路径 -family: klog # 与打包合并有关的参数,自动生成为项目的名称,一般不需要修改 -output: # 合并策略,具体参见 spm-chaos-build - relative: - - application.js - all: [] -``` - -ouput 项其实就是 package.json 中的 spm.output,支持 relative(只合并相对路径)/ all(合并所有路径)两种方式 - -目录说明: - - your-rails - ├─app - │ ├─assets - │ │ ├─images - │ │ ├─javascripts - │ │ │ ├─a.js <-- your js code - │ │ │ └─sea-modules <-- seajs base 目录 - │ │ │ ├─gallery - │ │ │ ├─jquery - │ │ │ └─seajs - │ │ │ └─seajs - │ │ │ └─2.0.0 - │ │ └─stylesheets - -与普通的开发基本一致,只是在 javascripts 目录下多了一个 sea-modules 作为 Sea.js 的 base 目录 - -普通的业务代码依然放置在 javascripts 目录下(非 CMD 模块的 JS 也放在这里) - -### 使用 - -提供两个 helper 方法:seajs_tag 与 seajs_use - -```erb -<%= seajs_tag %> -<%= seajs_use 'blogs/show' %> -``` -* seajs_tag 用于引入 seajs ,并且会根据是否合并引入必要的配置 -* seajs_use 用于加载 CMD 模块,支持传递多个模块名称 -* 如果需要 use 通用模块(位于 sea-modules 目录下),请在模块名前加上#,如 `<%= seajs_use '#gallery/moment/2.0.0/moment' %>` -* 如果想要使用带 callback 的 use 函数,可使用 seajs_modules 方法,如 `seajs.use(<%= seajs_modules 'blogs/show' %>, function(show){ })` - -### 合并 - -这个 gem 会将 seajs 的打包合并过程嵌入到 assets:precompile 任务中,所以执行这个命令 - - $ rake assets:precompile - -Sea.js 的合并过程不会与原有的 assets pipeline 冲突,但是请将配置分开 - -* 需要合并的 CMD 模块文件请在 seajs_config.yml 中配置 -* 而非 CMD 模块的文件请依然通过 `config.assets.precompile` 配置 - -合并完成后,不需要改动页面,两个 helper 方法能够自动处理 - -**特别注意:**请关注系统的 NODE_PATH 环境变量,如果不配置的话会导致 spm-chaos-build 执行有误 - - -## 参考文章 - -[Sea.js 如何与 Rails 结合](http://chaoskeh.com/blog/how-to-integrates-seajs-with-rails.html) - -## 变动历史 - -**2013-06-13** `0.0.8` - +# Sea.js for Rails 3.x + +Integrates Sea.js into the Rails 3 Asset Pipeline. + +提供一种将 Sea.js 与 Asset Pipeline 结合起来的方式,底层通过 spm-chaos-build 来实现 + +----- + +## 安装 + +首先请安装好 spm-chaos-build ,参见 https://github.com/edokeh/spm-chaos-build + + $ npm install spm -g + $ npm install spm-chaos-build -g + +然后在 Gemfile 中添加这个 gem + + gem 'seajs-rails' + +并执行命令 + + $ bundle + +## 使用方式 + +### 初始化 + +执行以下命令初始化项目 + + $ rake seajs:setup + +这会安装最新版本的 Sea.js 到相应目录下,并在 config 目录生成 seajs_config.yml + +配置文件说明: + +```yaml +seajs_path: seajs/seajs/2.0.0/sea.js # 这是配置 seajs 的路径 +family: klog # 与打包合并有关的参数,自动生成为项目的名称,一般不需要修改 +output: # 合并策略,具体参见 spm-chaos-build + relative: + - application.js + all: [] +``` + +ouput 项其实就是 package.json 中的 spm.output,支持 relative(只合并相对路径)/ all(合并所有路径)两种方式 + +**新增特性**:relative 配置现在支持这样的写法,即可以增加额外的合并规则 + +```yaml +output: + relative: + - application.js + - test/a.js: + - test/a.js + - test/b.js + - test/template/*.html.js + - test/c.js +``` + +目录说明: + + your-rails + ├─app + │ ├─assets + │ │ ├─images + │ │ ├─javascripts + │ │ │ ├─a.js <-- your js code + │ │ │ └─sea-modules <-- seajs base 目录 + │ │ │ ├─gallery + │ │ │ ├─jquery + │ │ │ └─seajs + │ │ │ └─seajs + │ │ │ └─2.0.0 + │ │ └─stylesheets + +与普通的开发基本一致,只是在 javascripts 目录下多了一个 sea-modules 作为 Sea.js 的 base 目录 + +普通的业务代码依然放置在 javascripts 目录下(非 CMD 模块的 JS 也放在这里) + +### 使用 + +提供两个 helper 方法:seajs_tag 与 seajs_use + +```erb +<%= seajs_tag %> +<%= seajs_use 'blogs/show' %> +``` +* seajs_tag 用于引入 seajs ,并且会根据是否合并引入必要的配置 +* seajs_use 用于加载 CMD 模块,支持传递多个模块名称 +* 如果需要 use 通用模块(位于 sea-modules 目录下),请在模块名前加上#,如 `<%= seajs_use '#gallery/moment/2.0.0/moment' %>` +* 如果想要使用带 callback 的 use 函数,可使用 seajs_modules 方法,如 `seajs.use(<%= seajs_modules 'blogs/show' %>, function(show){ })` + +### 合并 + +这个 gem 会将 seajs 的打包合并过程嵌入到 assets:precompile 任务中,所以执行这个命令 + + $ rake assets:precompile + +Sea.js 的合并过程不会与原有的 assets pipeline 冲突,但是请将配置分开 + +* 需要合并的 CMD 模块文件请在 seajs_config.yml 中配置 +* 而非 CMD 模块的文件请依然通过 `config.assets.precompile` 配置 + +合并完成后,不需要改动页面,两个 helper 方法能够自动处理 + +**特别注意:**请关注系统的 NODE_PATH 环境变量,如果不配置的话会导致 spm-chaos-build 执行有误 + + +## 参考文章 + +[Sea.js 如何与 Rails 结合](http://chaoskeh.com/blog/how-to-integrates-seajs-with-rails.html) + +## 变动历史 + +**2014-01-27** `0.0.10` + +* 增加对 Rails 4.0 的兼容性支持 +* 根据 spm-chaos-build 的新特性,现在支持更细粒度的合并规则配置 + +**2013-06-13** `0.0.8` + 增加 seajs_modules 方法,感谢 @blankyao \ No newline at end of file