首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sass未使用gulp/plumber/browsersync进行编译

sass未使用gulp/plumber/browsersync进行编译
EN

Stack Overflow用户
提问于 2017-03-19 12:51:06
回答 2查看 180关注 0票数 0

我只是重新开始编程,并试图让SPA的骨架漂浮起来。我已经到了Gulp监视我所有任务的地步。当我更改HTML和BrowserSync时,它可以识别,并且无需刷新即可正常工作。我遇到的问题更多是与SCSS/CSS相关的。我最后一次检查它是正常工作的,我做了一个npm更新,所以现在所有的东西都更新了。它似乎不想观察scss的变化。我认为这在一定程度上是由于它在文件中的链接方式,或者可能gulpfile对于sass任务的设置不正确。

我的文件夹设置为:

项目应用css/ scss/ index.html js/ gulpfile.js

有没有人看到了我没看到的东西?再一次,一切都加载了,应用了引导程序,启用了浏览器同步,但没有任何更改从我的style.scss缩小到CSS中。

谢谢!

Gulp文件:

代码语言:javascript
复制
/* Required */

var gulp = require('gulp');
var	uglify = require('gulp-uglify');
var	rename = require('gulp-rename');
var	sass = require('gulp-sass');
var	browserSync = require('browser-sync').create();
var	reload = browserSync.reload;
var plumber = require('gulp-plumber');
var autoprefixer = require('gulp-autoprefixer');

/* Scripts Task */

gulp.task('scripts', function(){
	gulp.src(['app/js/**/*.js', '!app/js/**/*min.js'])
	.pipe(plumber())
	.pipe(rename({suffix:'.min'}))
	.pipe(uglify())
	.pipe(gulp.dest('app/js'))
	.pipe(reload({stream:true}));
});

/* Sass Task */

gulp.task('sass', function(){
	return gulp.src('app/scss/**/*.scss')
	.pipe(plumber())
	.pipe(sass())
	.pipe(autoprefixer('last 2 versions'))
	.pipe(gulp.dest('app/css'))
	.pipe(reload({stream:true}));
});

/* HTML Task */

gulp.task('html', function(){
	gulp.src('app/**/*.html')
	.pipe(plumber())
	.pipe(reload({stream:true}));
});

/* Browser-Sync Task */

gulp.task('default', ['browser-sync'], function () {
});

gulp.task('browser-sync', function() {
	browserSync.init(null, {
		proxy: "http://localhost:5000",
        files: ["public/**/*.*"],
        browser: "opera",
        port: 7000,
	});
});

/* gulp.task('nodemon', function (cb) {
	
	var started = false;
	
	return nodemon({
		script: 'server.js'
	}).on('start', function () {
		// to avoid nodemon being started multiple times
		// thanks @matthisk
		if (!started) {
			cb();
			started = true; 
		} 
	});
}); */

/* Watch Task */

gulp.task('watch', function(){
	gulp.watch('app/js/**/*.js', ['scripts']);
	gulp.watch('app/scss/**/*.scss', ['sass']);
	gulp.watch('app/**/*.html', ['html']);
})

/* Default */

gulp.task('default', ['scripts', 'sass', 'html', 'browser-sync', 'watch']);

样式表包括:

代码语言:javascript
复制
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.css">
<!-- Latest compiled and minified Bootstrap CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<link rel="stylesheet" href="css/style.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.min.js"></script> <!-- Modernizr -->

EN

回答 2

Stack Overflow用户

发布于 2017-08-02 00:15:22

1:所有这些sass文件的输出css都到哪里去了?这是在调用样式的html中引用的吗? 2:也许你遗漏了目标文件夹?举个例子:

代码语言:javascript
复制
gulp.src('src/scss/application.scss')
    .pipe(sass({
      includePaths: [
       'node_modules/foundation-sites/scss',
       'node_modules/compass-mixins/lib'
      ],
      outputStyle: 'compressed'
    }).on('error', sass.logError))
    .pipe(gulp.dest('./public/css/'))

如果您检查最后一行,我将调用gulp.dest来定义sass文件的输出。

票数 0
EN

Stack Overflow用户

发布于 2018-02-17 06:21:07

您有以下链接:

代码语言:javascript
复制
<link rel="stylesheet" href="css/style.css">

但是您的sass任务不会显式地输出"style.css“,除非您有一个style.scss文件,该文件通常会将所有其他scss文件作为部分(如"_colors.scss")导入。请注意,下划线指示该文件是partial。在这种情况下,gulp sass将创建"style.css“,它导入所有这些分词。否则,它将为您的每个非局部scss文件创建一个css文件-但您只能链接到其中一个文件。

另一种方法是将css文件concat到一个名为"style.css“的文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42883040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档