如何使用node-sass(没有Ruby)编译或转换sass / scss到css



我一直在努力设置libsass,因为它不像基于Ruby的转译器那么简单。有人可以解释一下如何:

  1. 安装库萨斯?
  2. 从命令行使用它?
  3. 与 Gulp 和 Grunt 等任务运行器一起使用?

我对包管理器的经验很少,对任务运行器更没有经验。

我为libsass选择了node-sass实现器,因为它基于node.js。

安装节点服务器

  • (先决条件(如果没有 npm,请先安装 Node.js。
  • $ npm install -g node-sass 全局-g安装节点 sass

这将有望安装您需要的所有内容,如果不阅读底部的libsass。

如何从命令行和 npm 脚本中使用 node-sass

一般格式:

$ node-sass [options] <input.scss> [output.css]
$ cat <input.scss> | node-sass > output.css

例子:

  1. $ node-sass my-styles.scss my-styles.css手动编译单个文件。
  2. $ node-sass my-sass-folder/ -o my-css-folder/手动编译文件夹中的所有文件。
  3. 每当修改源文件时,$ node-sass -w sass/ -o css/自动编译文件夹中的所有文件。 -w添加对文件更改的监视。

更有用的选项,例如"压缩"@ 这里。命令行非常适合快速解决方案,但是,您可以使用 Grunt.js 或 Gul.js p 等任务运行器来自动化构建过程。

您还可以将上述示例添加到 npm 脚本中。要正确使用 npm 脚本作为 gulp 的替代方法,请阅读这篇综合文章 @ css-tricks.com 特别是阅读有关分组任务的信息。

  • 如果项目目录中没有正在运行package.json文件,$ npm init将创建一个。与-y一起使用可跳过问题。
  • "sass": "node-sass -w sass/ -o css/"添加到package.json文件中的scripts。它应该看起来像这样:
"scripts": {
    "test" : "bla bla bla",
    "sass": "node-sass -w sass/ -o css/"
 }
  • $ npm run sass将编译您的文件。

如何使用

  • $ npm install -g gulp在全球范围内安装Gulp。
  • 如果项目目录中没有正在运行package.json文件,$ npm init将创建一个。与-y一起使用以跳过问题。
  • $ npm install --save-dev gulp在本地安装 Gulp。 --save-dev package.jsondevDependencies增加了gulp
  • $ npm install gulp-sass --save-dev在本地安装gulp-sass。
  • 通过在项目根文件夹中创建包含以下内容的gulpfile.js文件,为您的项目设置 gulp:
'use strict';
var gulp = require('gulp');

转译的基本示例

将此代码添加到您的 gulpfile.js:

var gulp = require('gulp');
var sass = require('gulp-sass');
gulp.task('sass', function () {
  gulp.src('./sass/**/*.scss')
    .pipe(sass().on('error', sass.logError))
    .pipe(gulp.dest('./css'));
});

$ gulp sass运行上述任务,该任务编译sass文件夹中的 .scss 文件,并在css文件夹中生成.css文件。

为了让生活更轻松,让我们添加一个手表,这样我们就不必手动编译它。将此代码添加到您的gulpfile.js

gulp.task('sass:watch', function () {
  gulp.watch('./sass/**/*.scss', ['sass']);
});

一切准备就绪!只需运行监视任务:

$ gulp sass:watch

如何与 Node 一起使用.js

正如 node-sass 的名称所暗示的那样,您可以编写自己的 node.js 脚本进行转译。如果您很好奇,请查看节点 sass 项目页面。

图书馆呢?

Libsass 是一个需要由实现者构建的库,例如 sassC 或在我们的例子中是 node-sass。Node-sass包含它默认使用的libsass的构建版本。如果构建文件在您的机器上不起作用,它会尝试为您的机器构建 libsass。此过程需要 Python 2.7.x(3.x 目前还不起作用(。另外:

LibSass 需要 GCC 4.6+ 或 Clang/LLVM。如果您的操作系统较旧,则此版本可能无法编译。在Windows上,您需要带有GCC 4.6+或VS 2013 Update 4+的MinGW。也可以在Windows上使用Clang/LLVM构建LibSass。

npx node-sass input.scss out.css <</p>

div class="one_answers">

这些工具的安装可能因操作系统而异。

在 Windows 下,node-sass 目前默认支持 VS2015,如果你的盒子里只有 VS2013 并且在运行命令时遇到任何错误,你可以通过添加来定义 VS 的版本:--msvs_version=2013。这在 node-sass npm 页面上有说明。

因此,适用于带有VS2013的Windows的安全命令行是:npm install --msvs_version=2013 gulp node-sass gulp-sass

在 Windows 10 中使用节点 v6.11.2npm v3.10.10,以便直接在任何文件夹中执行:

> node-sass [options] <input.scss> [output.css]

我只遵循了node-sass Github中的说明:

  1. 通过在Powershell中以管理员身份运行来添加node-gyp先决条件(需要一段时间(:

    > npm install --global --production windows-build-tools
    
  2. 正常的命令行外壳(Win+R+cmd+Enter(中运行:

    > npm install -g node-gyp
    > npm install -g node-sass
    

    -g将这些包放在 %userprofile%AppDataRoamingnpmnode_modules 下。您可以检查npmnode_modulesnode-sassbinnode-sass现在是否存在。

  3. 检查您的本地帐户(不是系统(PATH环境变量是否包含:

    %userprofile%AppDataRoamingnpm
    

    如果此路径不存在,npmnode 可能仍会运行,但模块 bin 文件不会运行!

关闭上一个 shell 并重新打开一个新 shell 并运行 > node-gyp> node-sass

注意:

  • windows-build-tools可能不是必需的(如果没有进行编译?我想看看是否有人在没有安装这些工具的情况下做到了(,但它确实将GYP_MSVS_VERSION环境变量添加到管理员帐户中,2015 作为值。
  • 我还能够使用 bin 文件直接运行其他模块,例如 > uglifyjs main.js main.min.js> mocha

相关内容

  • 没有找到相关文章

最新更新