Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 使用bundler管理非gems_Ruby On Rails 3_Bundler - Fatal编程技术网

Ruby on rails 3 使用bundler管理非gems

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以及适当地分离关注点 您需要为

有一个github repo,我想从中获取不是gem的代码。它是一堆javascript文件,没有gem版本。我可以将它添加到Gemfile并定义它应该存储在哪里(在lib/assets目录下),还是必须使用git子模块来管理它?

我投票赞成:保持Gemfile干净,转到子模块。

Bundler管理Gem,而不是任意存储库。这就是说,如果你只想使用一些资产,你可以很容易地将它们打包成一块宝石,让它们典当到资产管道中。这为您带来了一个好处,即允许您使用所有工具来管理gem以及适当地分离关注点

您需要为此添加rails引擎。为此,只需将您的资产放入新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。另一方面,子模块通常是一个不好的建议,因为从长远来看,它们不是那么容易使用,并且会促进紧密耦合,而不是促进关注点的分离。谢谢!我也会调查的。