2016-11-11 33 views
2

我想在我的Rails项目中将所有css文件更改为scss如何将所有CSS文件更改为SCSS

文件夹结构是不可预测的,就像

stylesheets - A  - A_1 - a_1.css 
      - B  - B.css 
      - C  - C_1 - c_1_1 - c_1_1.css 
        - C_2 - c-2.css 
      - d.css 

我写了一些代码,但它只能赚css文件,该文件是在./stylesheets成为scss

require 'fileutils' 

Dir.chdir('app/assets/stylesheets') 
Dir.glob('./*.css').each do |f| 
    puts f 
    FileUtils.mv f, "#{File.basename(f,'.*')}.scss" 
end 

如果有更好的就像shell脚本一样,它也是可以接受的。


感谢@maxpleaner,我修改成这样:

require 'fileutils' 

Dir.chdir('app/assets/stylesheets') 

Dir.glob("./**/*.css").each do |path| 
    #p path 
    FileUtils.mv path, "#{File.dirname(path)}/" + "#{File.basename(path,'.*')}.scss" 
end 

,它工作正常。但是我不知道这是否会破坏什么东西或者不是(尤其是application.css)

Dir.glob("./**/*.css").each do |path| 

+0

Ruby的[Dir](http://ruby-doc.org/core-2.3.1/Dir.html)类可以帮助你递归下降到一个层次结构,但它往往会浪费CPU和RAM资源。我建议阅读Ruby的[Find](http://ruby-doc.org/stdlib-2.3.1/libdoc/find/rdoc/Find.html)类的文档,因为它专门为这种类型的任务编写。 –

+0

CPU和RAM不是问题,因为它只运行一次。 –

回答

1

为了让项目中的所有CSS文件的路径,你可以用这个。首先提交git可能是一个好主意。

相关问题