【发布时间】:2014-03-07 05:33:21
【问题描述】:
我有幸在非 Windows 环境中进行开发的开发者朋友一直对 Compass 赞不绝口。我终于决定我想试一试。我厌倦了试图跟上跨浏览器 CSS 的所有复杂性。
所以,我在 NuGet 上找到并安装了它。
我安装到我的解决方案根目录中的 packages 目录:
$(SolutionDir)packages\Ruby.Compass.0.12.2.3\
它带有一个自述文件,其中说明了以下消息:
Ruby Compass v. 0.12.2
Compass 安装在其自己的 NuGet 包目录中,可通过 “packages\Ruby.Compass.0.12.2.3”文件夹中的“compass”命令。
要在构建期间编译 Compass 文件,请将下一行添加到 项目预构建事件:
"$(SolutionDir)packages\Ruby.Compass.0.12.2.3\compass" 编译 “$(项目目录)。”
所以,我将这条线放在我的预构建事件中,保存并尝试构建我的项目。但是,我收到如下错误:
命令 ""$(SolutionDir)packages\Ruby.Compass.0.12.2.3\compass" 编译 "$(ProjectDir)."" 退出代码 1。
注意:它实际上显示了ProjectDir 和SolutionDir 的完整路径,因为它应该也在错误消息中。我用标记替换了它们以保持项目名称一致。
让我提一下,我尝试了建议预构建行的变体:
"$(SolutionDir)packages\Ruby.Compass.0.12.2.3\compass" compile "$(ProjectDir)"
"$(SolutionDir)packages\Ruby.Compass.0.12.2.3\compass" compile "$(ProjectDir)css"
"$(SolutionDir)packages\Ruby.Compass.0.12.2.3\compass" compile "$(ProjectDir)css\test.scss"
第一个刚刚删除了尾随 .。第二个将它指向存储我所有 css 文件的目录。第三个指向我试图编译的确切文件所在的位置。
我打开了compass.cmd,这是它正在调用的文件,它看起来像下面这样:
@echo off
"%~dp0ruby\bin\compass" %*
我假设这会调用 ruby/bin 文件夹中的指南针文件,如下所示:
#!C:/downloads/ruby-2.0.0-p247-x64-mingw32/ruby-2.0.0-p247-x64-mingw32/bin/ruby.exe
#
# This file was generated by RubyGems.
#
# The application 'compass' is installed as part of a gem, and
# this file is here to facilitate running it.
#
require 'rubygems'
version = ">= 0"
if ARGV.first
str = ARGV.first
str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding
if str =~ /\A_(.*)_\z/
version = $1
ARGV.shift
end
end
gem 'compass', version
load Gem.bin_path('compass', 'compass', version)
从那里,我不确定发生了什么。我不是 Ruby 人。
这里有我忽略的问题吗? 有其他人能够通过 NuGet 安装 Ruby.Compass 吗? 我怎样才能让这个在 Visual Studio 中工作而不必使用 Ruby?
【问题讨论】:
标签: nuget compass-sass