Bundle介绍:@H_502_1@
Rails 3中引入Bundle来管理项目中所有gem依赖,该命令只能在一个含有Gemfile的目录下执行,如rails 3项目的根目录。@H_502_1@
关于Gemfile和Gemfile.lock@H_502_1@
所有Ruby项目的信赖包都在Gemfile中进行配置,不再像以往那样,通过require来查找。Rails 3中如果需要require某个gem包,必须通过修改Gemfile文件来管理。@H_502_1@
Gemfile.lock则用来记录本机目前所有依赖的Ruby Gems及其版本。所以强烈建议将该文件放入版本控制器,从而保证大家基于同一环境下工作。@H_502_1@
Bundle命令详解:@H_502_1@
# 显示所有的依赖包@H_502_1@
$ bundle show@H_502_1@
@H_502_1@
# 显示指定gem包的安装位置@H_502_1@
$ bundle show [gemname]@H_502_1@
@H_502_1@
# 检查系统中缺少那些项目依赖的gem包@H_502_1@
# 注:如果系统中存在所有项目依赖的包,则会输出:The Gemfile's dependencies are satisfied@H_502_1@
$ bundle check@H_502_1@
@H_502_1@
# 安装项目依赖的所有gem包@H_502_1@
# 注:此命令会尝试更新系统中已存在的gem包@H_502_1@
$ bundle install@H_502_1@
@H_502_1@
# 安装指定的gem包@H_502_1@
$ bundle install [gemname]@H_502_1@
@H_502_1@
# 更新系统中存在的项目依赖包,并同时更新项目Gemfile.lock文件@H_502_1@
$ bundle update@H_502_1@
@H_502_1@
# 更新系统中指定的gem包信息,并同时更新项目Gemfile.lock中指定的包信息@H_502_1@
$ bundle update [gemname]@H_502_1@
@H_502_1@
# 向项目中添加新的gem包引用@H_502_1@
$ gem [gemname],[ver]@H_502_1@
@H_502_1@
# 你还可以指定包依赖关系@H_502_1@
$ gem [gemname],:require => [dependence_gemname]@H_502_1@
@H_502_1@
# 你甚至还可以指定gem包的git源@H_502_1@
$ gem [gemname],:git => [git_source_url]@H_502_1@
@H_502_1@
# 锁定当前环境@H_502_1@
# 可以使用bundle lock来锁定当前环境,这样便不能通过bundle update来更新依赖包的版本,保证了统一的环境@H_502_1@
$ bundle lock@H_502_1@
@H_502_1@
# 解除锁定@H_502_1@
$ bundle unlock@H_502_1@
@H_502_1@
# 打包当装环境@H_502_1@
# bundle package会把当前所有信赖的包都放到 ./vendor/cache/ 目录下,发布时可用来保证包版本的一致性。@H_502_1@
$ bundle package@H_502_1@
@H_502_1@
@H_502_1@
@H_502_1@
gem文件:@H_502_1@
@H_502_1@
# Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs #for a list of available runtimes. #(ExecJS::RuntimeUnavailable) 修改次异常@H_502_1@
@H_502_1@
gem 'execjs'@H_502_1@
gem 'therubyracer'@H_502_1@ 原文链接:https://www.f2er.com/javaschema/283737.html