【问题标题】:How to override read-only files with "compass compile" command?如何使用“compass compile”命令覆盖只读文件?
【发布时间】:2012-06-27 10:01:16
【问题描述】:

我有来自 TFS 服务器的 MS Visual Studio Web 项目文件夹,其中包含几个 *.scss 文件,并且已经生成了 *.css(通过 Mindscape Web Workbench Visual Studio 插件)。

在发布网站之前,希望使用 Compass 重新生成 *.css 文件。
但是文件 *.css 文件包含在项目中并被签入,因此它们被标记为 只读 文件属性。

我的命令行:

C:\Ruby193\bin>compass compile
   --force
   --sass-dir 'd:\SDesign'
   --css-dir 'd:\SDesign' 
   --output-style compressed
   --no-line-comments
   --relative-assets
   --trace

结果如下:

overwrite Style.css
Errno::EACCES on line ["56"] of C: Permission denied - d:/SDesign/Style.css
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/actions.rb:56:in `open'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/actions.rb:56:in `write_file'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/compiler.rb:144:in `compile'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/compiler.rb:118:in `compile_if_required'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/compiler.rb:103:in `block (2 levels) in run'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/compiler.rb:101:in `each'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/compiler.rb:101:in `block in run'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/compiler.rb:126:in `timed'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/compiler.rb:100:in `run'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/commands/update_project.rb:45:in `perform'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/commands/base.rb:18:in `execute'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/commands/project_base.rb:19:in `execute'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/exec/sub_command_ui.rb:43:in `perform!'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/lib/compass/exec/sub_command_ui.rb:15:in `run!'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/bin/compass:29:in `block in <top (required)>'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/bin/compass:43:in `call'
  C:/Ruby193/lib/ruby/gems/1.9.1/gems/compass-0.12.1/bin/compass:43:in `<top (required)>'
  C:/Ruby193/bin/compass:19:in `load'
  C:/Ruby193/bin/compass:19:in `<main>'

有没有办法不手动重置目标 *.css 文件的只读属性?
也许是一些magic命令参数?

提前谢谢你。

【问题讨论】:

    标签: sass file-permissions compass-sass


    【解决方案1】:

    这是我的临时解决方案。
    如果您知道更好的方法,请告诉我!

    @echo off
    set ruby_bin=c:\Ruby193\bin
    set project_path=d:\CDesign
    set temp_path=%project_path%\temp
    
    if exist "%temp_path%" rd "%temp_path%" /Q /S
    mkdir "%temp_path%"
    
    call %ruby_bin%\compass.bat compile --force --sass-dir '%project_path%' --css-dir '%temp_path%' --output-style compressed --no-line-comments --relative-assets
    
    xcopy %temp_path%\*.* %project_path% /S /R /Y
    rd "%temp_path%" /Q /S
    

    【讨论】:

      猜你喜欢
      • 2015-01-25
      • 2020-10-31
      • 2016-04-17
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多