如何使用 node-sass 将 scss 编译为 css
How to compile scss to css with node-sass
我有一个 master.scss,其中包含许多来自其他 .scss 文件的导入。如果我更改 *.scss 文件 master.css 会自动生成。
我只使用 NPM,没有 Gulp 或 Grunt!应该保持这种状态。
我当前的构建脚本:
"scripts": {
"watch-sass": "sass --watch src/scss/master.scss:dist/css/master.css"
}
很好,但编译时间很长!
现在我正在尝试使用 node-sass。它应该编译得非常快。
不幸的是,我不完全理解......
node-sass 已安装,通过 npm 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..]
});
这在package.json
不是这样吧?
这是我读过的教程:Using NPM as a Task Runner
剧本不错。我该如何使用它?
"scripts": {
"sass": "node-sass sass/ -o build/css/"
}
这会将所有 sass 文件(不以下划线开头)编译到 build/css/ 目录。
希望得到您的帮助!
也许这涵盖了您的问题:
如果您可以选择,我建议您使用 g运行t,它会让事情变得更简单、更快。这个 g运行t 插件可能是最好的选择:https://www.npmjs.com/package/grunt-contrib-sass
//更新
我按照您发送的教程进行操作,它非常简单明了。
您在名为 "package.json" 的根文件夹中创建一个文件,其中包含以下内容:
{
"watches": {
"sass": "sass/**"
},
"scripts": {
"sass": "node-sass sass/ -o build/css/",
"dev": "rerun-script"
}
}
然后您在根文件夹中打开命令行,运行以下内容:
npm install --save-dev node-sass
以上安装node-sass
你然后运行:
npm install --save-dev rerun-script
上面创建了一个 watch 任务,这样你就不必在每次进行更改时都重新运行 node-sass
最后你 运行
npm run dev
完成!
如果你想自动编译文件那么你需要加上标志-w
node-sass -w -r assets/src/scss/ -o assets/dist/css/
我的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"
]
}
}
package.json 的实际版本:https://gist.github.com/artamonovdev/5f24aaca504e4d1b299bba0413f0a57d
node-sass
中的watch
模式不是运行第一次编译。它假设您已经 运行 node-sass
.
就个人而言,我使用这样的东西:
{
"scripts": {
"sass": "node-sass -o /path/to/dist /path/to/src",
"sass:watch": "npm run sass && npm run sass -- --watch --recursive"
}
}
你可以这样使用它:npm run sass:watch
我有一个 master.scss,其中包含许多来自其他 .scss 文件的导入。如果我更改 *.scss 文件 master.css 会自动生成。
我只使用 NPM,没有 Gulp 或 Grunt!应该保持这种状态。
我当前的构建脚本:
"scripts": {
"watch-sass": "sass --watch src/scss/master.scss:dist/css/master.css"
}
很好,但编译时间很长!
现在我正在尝试使用 node-sass。它应该编译得非常快。
不幸的是,我不完全理解......
node-sass 已安装,通过 npm 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..]
});
这在package.json
不是这样吧?
这是我读过的教程:Using NPM as a Task Runner
剧本不错。我该如何使用它?
"scripts": {
"sass": "node-sass sass/ -o build/css/"
}
这会将所有 sass 文件(不以下划线开头)编译到 build/css/ 目录。
希望得到您的帮助!
也许这涵盖了您的问题:
如果您可以选择,我建议您使用 g运行t,它会让事情变得更简单、更快。这个 g运行t 插件可能是最好的选择:https://www.npmjs.com/package/grunt-contrib-sass
//更新
我按照您发送的教程进行操作,它非常简单明了。 您在名为 "package.json" 的根文件夹中创建一个文件,其中包含以下内容:
{
"watches": {
"sass": "sass/**"
},
"scripts": {
"sass": "node-sass sass/ -o build/css/",
"dev": "rerun-script"
}
}
然后您在根文件夹中打开命令行,运行以下内容:
npm install --save-dev node-sass
以上安装node-sass
你然后运行:
npm install --save-dev rerun-script
上面创建了一个 watch 任务,这样你就不必在每次进行更改时都重新运行 node-sass
最后你 运行
npm run dev
完成!
如果你想自动编译文件那么你需要加上标志-w
node-sass -w -r assets/src/scss/ -o assets/dist/css/
我的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"
]
}
}
package.json 的实际版本:https://gist.github.com/artamonovdev/5f24aaca504e4d1b299bba0413f0a57d
node-sass
中的watch
模式不是运行第一次编译。它假设您已经 运行 node-sass
.
就个人而言,我使用这样的东西:
{
"scripts": {
"sass": "node-sass -o /path/to/dist /path/to/src",
"sass:watch": "npm run sass && npm run sass -- --watch --recursive"
}
}
你可以这样使用它:npm run sass:watch