Powershell 构建 - 编译 SASS
Powershell build - compiling SASS
我希望在 Visual Studio 2010 项目中使用 Web Workbench 开始使用 SASS - 但通过 TFS 进行版本控制的问题让我感到困惑。为了避免覆盖其他人的更改,我知道输出的 CSS 应该从源代码控制中排除,并且 SCSS 应该在构建过程中编译到 CSS 服务器端。目前我们使用 Powershell 脚本进行构建,但我似乎无法找到有关如何在 Powershell 中合并 SCSS 编译的任何信息。是否有关于此过程的任何体面的文档?
您需要一个 SASS 编译器,您的情况可能会有所不同。原始编译器是用 Ruby 编写的,因此,如果你想使用它,你必须安装 Ruby、SASS gem 并从中调用 sass
你的 Powershell 脚本。
另一种选择是使用像 SassC or C6 这样不需要 Ruby 运行时的兼容编译器。
我认为我对 Powershell/build 脚本的总体经验不足让我想得太多了。我采取了以下步骤:
1) 从这里为 Windows 安装 Ruby:https://www.ruby-lang.org/en/documentation/installation/
2) 打开命令提示符 -> 输入 gem install ruby
3) 打开 PowerGUI 脚本编辑器(已安装,但可在此处下载:http://software.dell.com/products/powergui-freeware/)
4) 创建了一个函数来执行以下操作:sass -t compressed "path\sassInput.scss" "path\sassOutput.css"
很快。我确实希望有一种方法可以为目录中的每个 .scss 文件执行此操作,但现在这足以让我开始了。
更新:
这是我最终得到的 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
}
}
- 安装 Node.JS (https://nodejs.org/download/)
- 为 Windows 安装 Ruby (http://rubyinstaller.org/)
- 运行
npm init
在你的项目目录下创建一个packages.json文件。
- 安装 g运行t
npm install grunt --save-dev
(http://gruntjs.com/getting-started)
- 安装 g运行t-contrib-sass
npm install grunt-contrib-sass --save-dev
- 在您的项目根目录中创建一个空
Gruntfile.js
将以下内容添加到您的 gruntfile.js
module.exports = function(grunt) {
// Do grunt-related things in here
};
按照此处的说明创建 g运行t-sass 任务:https://github.com/gruntjs/grunt-contrib-sass
自述文件末尾提供了一些简单示例。
运行 grunt
来自项目根目录中的 powershell window。
盈利!
将其添加到自动构建脚本时,此代码段可能会有所帮助:
push-location c:\dev\project
grunt
pop-location
我遇到了同样的问题。你有这个,因为 powershell 有受限的可执行策略。 你接下来可以做什么:
0.安装node.js,npm,node-sass
- 运行 PowerShell 作为管理员
- 使用
Get-ExecutionPolicy
检查政策
你会看到受限
- 查看所有政策
Get-ExecutionPolicy -List
- 运行
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
- 按"Y"
使用节点-sass -w ./input.scss ./output.css
此外,你可以阅读更多here
我希望在 Visual Studio 2010 项目中使用 Web Workbench 开始使用 SASS - 但通过 TFS 进行版本控制的问题让我感到困惑。为了避免覆盖其他人的更改,我知道输出的 CSS 应该从源代码控制中排除,并且 SCSS 应该在构建过程中编译到 CSS 服务器端。目前我们使用 Powershell 脚本进行构建,但我似乎无法找到有关如何在 Powershell 中合并 SCSS 编译的任何信息。是否有关于此过程的任何体面的文档?
您需要一个 SASS 编译器,您的情况可能会有所不同。原始编译器是用 Ruby 编写的,因此,如果你想使用它,你必须安装 Ruby、SASS gem 并从中调用 sass
你的 Powershell 脚本。
另一种选择是使用像 SassC or C6 这样不需要 Ruby 运行时的兼容编译器。
我认为我对 Powershell/build 脚本的总体经验不足让我想得太多了。我采取了以下步骤:
1) 从这里为 Windows 安装 Ruby:https://www.ruby-lang.org/en/documentation/installation/
2) 打开命令提示符 -> 输入 gem install ruby
3) 打开 PowerGUI 脚本编辑器(已安装,但可在此处下载:http://software.dell.com/products/powergui-freeware/)
4) 创建了一个函数来执行以下操作:sass -t compressed "path\sassInput.scss" "path\sassOutput.css"
很快。我确实希望有一种方法可以为目录中的每个 .scss 文件执行此操作,但现在这足以让我开始了。
更新:
这是我最终得到的 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
}
}
- 安装 Node.JS (https://nodejs.org/download/)
- 为 Windows 安装 Ruby (http://rubyinstaller.org/)
- 运行
npm init
在你的项目目录下创建一个packages.json文件。 - 安装 g运行t
npm install grunt --save-dev
(http://gruntjs.com/getting-started) - 安装 g运行t-contrib-sass
npm install grunt-contrib-sass --save-dev
- 在您的项目根目录中创建一个空
Gruntfile.js
将以下内容添加到您的
gruntfile.js
module.exports = function(grunt) { // Do grunt-related things in here };
按照此处的说明创建 g运行t-sass 任务:https://github.com/gruntjs/grunt-contrib-sass 自述文件末尾提供了一些简单示例。
运行
grunt
来自项目根目录中的 powershell window。盈利!
将其添加到自动构建脚本时,此代码段可能会有所帮助:
push-location c:\dev\project
grunt
pop-location
我遇到了同样的问题。你有这个,因为 powershell 有受限的可执行策略。 你接下来可以做什么: 0.安装node.js,npm,node-sass
- 运行 PowerShell 作为管理员
- 使用
Get-ExecutionPolicy
检查政策 你会看到受限 - 查看所有政策
Get-ExecutionPolicy -List
- 运行
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
- 按"Y"
使用节点-sass -w ./input.scss ./output.css
此外,你可以阅读更多here