关于gemspecs的文件列表。
我注意到珠宝商使用项目中的文件列表手动更新此列表。例如
Gem::Specification.new do |s|
# stuff
s.files = [
"lib/somegem.rb",
"README.md"
]
# ... more stuff
end
是否有任何证据表明使用git ls-files
或Dir.glob('**/*')
动态生成gemspec的文件列表会导致在项目中使用gem时出现性能问题(特别是rails项目)? e.g?
Gem::Specification.new do |s|
# stuff
s.files = `git ls-files`.split("\n")
# ... more stuff
end
答案 0 :(得分:1)
完全可以动态生成文件列表。事实上,Gemspec Specification docs显示了几种方法。
来自Rubygems文档:
require 'rake'
spec.files = FileList['lib .rb',
'bin/*',
'[A-Z]*',
'test/ *'].to_a
# or without Rake...
spec.files = Dir['lib/ *.rb'] + Dir['bin/*']
spec.files += Dir['[A-Z]*'] + Dir['test/**/*']
spec.files.reject! { |fn| fn.include? "CVS" }
我会坚持使用上面的方法而不使用git ls-files
,因为我不会假设每个使用gem的系统都会安装git。