Fre*_*ddy 5 css sass gulp gulp-sass
我正在尝试建立一个模块化的工作流程,在运行时gulp,它将文件夹中的 SASS 文件编译为 CSS。这些新的 CSS 文件将存储在同一文件夹中。
例如,这是我当前的文件夹结构:
theme
- modules
- hero
- hero.html
- hero.scss
Run Code Online (Sandbox Code Playgroud)
这是我的“gulpfile.js”:
var gulp = require('gulp');
var sass = require('gulp-sass');
gulp.task( 'sass', function() {
return gulp.src('modules/**/*.scss')
.pipe(sass())
.pipe(gulp.dest('modules/**/*.css'))
});
Run Code Online (Sandbox Code Playgroud)
但是,在运行时gulp sass,这是我的文件夹结构的样子:
theme
- **
- *.css
- hero
- hero.css
- modules
- hero
- hero.html
- hero.scss
Run Code Online (Sandbox Code Playgroud)
而我所追求的是:
theme
- modules
- hero
- hero.html
- hero.scss
- hero.css (hero.css to appear here after running gulp)
Run Code Online (Sandbox Code Playgroud)
我离得远吗?
如果我理解正确,你想返回.css文件.scss存在的文件。这是gulpfile.js代码。
'use strict';
var gulp = require('gulp');
var sass = require('gulp-sass');
var autoprefixer = require('autoprefixer');
var postcss = require('gulp-postcss');
var paths = {
styles: {
src: 'modules/**/*.scss',
dest: 'modules'
}
}
function scss() {
return gulp.src(paths.styles.src)
.pipe(sass().on('error', sass.logError))
.pipe(sass({ outputStyle: 'compressed' }))
.pipe(postcss([autoprefixer()]))
.pipe(gulp.dest(paths.styles.dest));
}
exports.scss = scss
function watch() {
scss()
gulp.watch(paths.styles.src, scss);
}
exports.watch = watch
Run Code Online (Sandbox Code Playgroud)
package.json文件需要devDependencies和browserlist. 会是这样的。
"devDependencies": {
"autoprefixer": "^9.7.4",
"gulp": "^4.0.2",
"gulp-postcss": "^8.0.0",
"gulp-sass": "^4.0.2"
},
"browserslist": [
"last 71 version"
],
Run Code Online (Sandbox Code Playgroud)
使用$ gulp watch运行你的任务。
你的文件夹结构是这样的
Themes
modules
hero
hero.html
hero.scss
header
header.html
header.scss
footer
footer.html
footer.scss
package.json
gulpfile.js
Run Code Online (Sandbox Code Playgroud)
它会返回
Themes
modules
hero
hero.html
hero.css
hero.scss
header
header.html
header.css
header.scss
footer
footer.html
footer.css
footer.scss
package.json
gulpfile.js
Run Code Online (Sandbox Code Playgroud)
希望这有帮助!