2015-05-11 3 views
13

Я надеюсь начать использовать SASS в проекте Visual Studio 2010 с помощью Web Workbench, но проблема управления версиями через TFS меня озадачила. Чтобы избежать переопределения чужих изменений, я понимаю, что выводимый CSS должен быть исключен из исходного управления и что SCSS должен быть скомпилирован на стороне сервера CSS во время процесса сборки. В настоящее время мы используем скрипт Powershell для сборки, но я не могу найти никакой информации о том, как включить компиляцию SCSS в Powershell. Есть ли достойная документация в этом процессе?Powershell build - компиляция SASS

+0

Какая версия Visual Studio вы используете? –

+0

VS2010 - вопрос обновления – jessikwa

ответ

3

Я думаю, что мой недостаток опыта работы с сценариями Powershell/build в целом заставил меня переоценить это. Я принял следующие шаги:

1) Установленные рубин для Windows, отсюда: https://www.ruby-lang.org/en/documentation/installation/

2) Откройте командную строку -> вошел gem install ruby

3) Открылся PowerGUI Script Editor (уже установлен, но может быть скачать здесь: http://software.dell.com/products/powergui-freeware/)

4) создал функцию для выполнения следующих действий: sass -t compressed "path\sassInput.scss" "path\sassOutput.css"

И вуаля. Я хочу иметь способ сделать это для каждого .scss-файла в каталоге, который не является частичным, но этого достаточно, чтобы начать работу.

UPDATE: Это то, что я закончил с для сценария Powershell: (обратите внимание на $dirpath установлен в корневой директории моего проекта в другом месте)

$stylesheetPath = $dirpath + "App_Themes\" 
$files = Get-ChildItem $stylesheetPath -Filter *.scss 
for ($i=0; $i -lt $files.Count; $i++) { 
    $file = $files[$i] 
    $fileName = $file.BaseName 
    $filePath = $file.FullName 
    if (-not $fileName.StartsWith("_")) { 
     $newFilePath = "$stylesheetPath$fileName.css" 
     sass -t compressed $filePath $newFilePath 
    } 
} 
+1

Представьте, что вы используете соглашение, которое префикс не является частичным с символом '_'. В этом случае вы запускаете Get-ChildItem '_ *. Scss' -Recurse | % {sass -t сжато $ _. FullName "$ ($ _. FullName -replace '\ .scss', '. css')"} –

+0

Спасибо @GiulioVian - я закончил делать что-то немного другое, но вы указали мне в правильном направлении. – jessikwa

0

Вам нужен компилятор SASS, и ваш пробег может отличаться. Оригинальный компилятор написан на Ruby, поэтому, если вы хотите его использовать, вам нужно установить Ruby, камень SASS и вызвать sass из вашего сценария Powershell. Другой вариант - использовать совместимый компилятор, такой как SassC или C6, которым не требуется время выполнения Ruby.

-1
  1. Установка Node.js (https://nodejs.org/download/)
  2. Установите Ruby for Windows (http://rubyinstaller.org/)
  3. запустите npm init в каталог проекта, чтобы создать файл packages.json.
  4. установить хрюкать npm install grunt --save-dev (http://gruntjs.com/getting-started)
  5. установить хрюкать-вно-дерзость npm install grunt-contrib-sass --save-dev
  6. создать пустой Gruntfile.js в вашем проекте корня
  7. добавить следующее к gruntfile.js

    module.exports = function(grunt) { 
        // Do grunt-related things in here 
    }; 
    
  8. инструкции следуют здесь, чтобы создать задачу для ворчания: https://github.com/gruntjs/grunt-contrib-sass Некоторые простые примеры приведены ближе к концу readme.

  9. run grunt из окна powershell в вашем проекте root.

  10. ПРИБЫЛЬ!

этот фрагмент может помочь при добавлении это в свой автоматизированный сценарий сборки:

push-location c:\dev\project 
grunt 
pop-location 
Смежные вопросы