如何使用node-sass将scss编译为css

QJa*_*n84 7 css sass node.js npm node-sass

我有一个master.scss,其中包含很多来自其他.scss文件的导入.如果我更改*.scss文件,则会自动生成master.css.

我只使用NPM,没有Gulp或Grunt!这应该保持不变.

我当前的构建脚本:

"scripts": {
  "watch-sass": "sass --watch src/scss/master.scss:dist/css/master.css"
}
Run Code Online (Sandbox Code Playgroud)

这很好,但需要很长时间才能编译!

现在我正在尝试使用node-sass.它应该编译得非常快.不幸的是,我完全不了解它... 通过安装node-sassnpm install node-sass

我在哪里使用以下(来自文档)?

var sass = require('node-sass');
sass.render({
  file: scss_filename,
  [, options..]
}, function(err, result) { /*...*/ });
// OR
var result = sass.renderSync({
  data: scss_content
  [, options..]
});
Run Code Online (Sandbox Code Playgroud)

这不是package.json,对吧?

这是一个教程,我读过的内容: 使用NPM作为任务运行器

脚本很好.我怎么用呢?

"scripts": {
  "sass": "node-sass sass/ -o build/css/"
}
Run Code Online (Sandbox Code Playgroud)

这将编译所有sass文件(不以下划线开头)到build/css /目录.

我希望对你有所帮助!

Vas*_*kos 7

也许这涵盖了你的问题: 如何使用node-sass(没有Ruby)将sass/scss编译或转换为css?

如果它是你的选择我建议使用grunt,它会使事情变得更简单,更快.这个grunt插件可能是最好的选择:https://www.npmjs.com/package/grunt-contrib-sass

//更新

我按照你发送的教程进行操作,非常简单.您在根文件夹中创建一个名为"package.json"的文件,其中包含以下内容:

{
  "watches": {
    "sass": "sass/**"
  },
  "scripts": {
    "sass": "node-sass sass/ -o build/css/",
    "dev": "rerun-script"
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,在根文件夹中打开命令行并运行以下命令:

npm install --save-dev node-sass
Run Code Online (Sandbox Code Playgroud)

以上安装node-sass

然后你运行:

npm install --save-dev rerun-script
Run Code Online (Sandbox Code Playgroud)

上面创建了一个监视任务,因此您无需在每次进行更改时重新运行node-sass

最后你跑了

npm run dev
Run Code Online (Sandbox Code Playgroud)

完成!


art*_*dev 5

文档。

如果你想自动编译文件那么你需要添加标志 -w

node-sass -w -r assets/src/scss/ -o assets/dist/css/
Run Code Online (Sandbox Code Playgroud)

我的package.json

{
  "name": "my-project",
  "version": "1.0.0",
  "scripts": {
    "build:js": "watchify assets/src/js/main_1.js -o 'exorcist assets/dist/js/main_1.js.map > assets/dist/js/main_1.js' -d -t [babelify --presets [latest]]",
    "build:scss": "node-sass -w -r assets/src/scss/ -o assets/dist/css/",
    "build": "npm run build:scss & npm run build:js"
  },
  "devDependencies": {
    "babel-cli": "^6.0.0",
    "babel-preset-latest": "^6.16.0",
    "babelify": "^7.3.0",
    "browserify": "^13.1.1",
    "exorcist": "^0.4.0",
    "node-sass": "^4.5.0",
    "watchify": "^3.7.0"
  },
  "browserify": {
    "transform": [
      "babelify"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

package.json的实际版本:https://gist.github.com/artamonovdev/5f24aaca504e4d1b299bba0413f0a57d


小智 5

watch中的模式不node-sass运行第一次编译。它假设你已经跑了node-sass

就我个人而言,我使用这样的东西:

{
  "scripts": {
    "sass": "node-sass -o /path/to/dist /path/to/src",
    "sass:watch": "npm run sass && npm run sass -- --watch --recursive"
  }
}
Run Code Online (Sandbox Code Playgroud)

你可以这样使用它:npm run sass:watch