Ruby on rails 3 使用bundler管理非gems
有一个github repo,我想从中获取不是gem的代码。它是一堆javascript文件,没有gem版本。我可以将它添加到Gemfile并定义它应该存储在哪里(在lib/assets目录下),还是必须使用git子模块来管理它?我投票赞成:保持Gemfile干净,转到子模块。Bundler管理Gem,而不是任意存储库。这就是说,如果你只想使用一些资产,你可以很容易地将它们打包成一块宝石,让它们典当到资产管道中。这为您带来了一个好处,即允许您使用所有工具来管理gem以及适当地分离关注点 您需要为此添加rails引擎。为此,只需将您的资产放入新gem的Ruby on rails 3 使用bundler管理非gems,ruby-on-rails-3,bundler,Ruby On Rails 3,Bundler,有一个github repo,我想从中获取不是gem的代码。它是一堆javascript文件,没有gem版本。我可以将它添加到Gemfile并定义它应该存储在哪里(在lib/assets目录下),还是必须使用git子模块来管理它?我投票赞成:保持Gemfile干净,转到子模块。Bundler管理Gem,而不是任意存储库。这就是说,如果你只想使用一些资产,你可以很容易地将它们打包成一块宝石,让它们典当到资产管道中。这为您带来了一个好处,即允许您使用所有工具来管理gem以及适当地分离关注点 您需要为
vendor/assets
目录,目录结构类似于主应用程序的主assets
目录。此外,您需要在lib/your_gem.rb
中添加一个新的ruby类,内容如下:
module MyGem
class Engine < Rails::Engine
end
end
模块MyGem
类引擎
这将gem注册为rails引擎,并将资产提供给资产管道
最后添加一个gemspec,您就完成了。也可以通过
bundle gem
命令创建基本gem结构。谢谢。在我添加子模块之前,是否有办法只包含子模块中的某些目录或文件?比如说我想排除目录'demo'和所有文件,只包括'src'?我从来没有这样使用过,只是不知道,对不起!这不是风格的问题。Bundler只能管理Gems。另一方面,子模块通常是一个不好的建议,因为从长远来看,它们不是那么容易使用,并且会促进紧密耦合,而不是促进关注点的分离。谢谢!我也会调查的。