Gulp 작업에 많은 시간 동안 문제가 있습니다. 어떻게 작동시키는 지 알 수 없었습니다.browserSync.reload가 Gulp 작업을 사용하여 실행하지 않습니다.
내가 먼저 내 프로젝트 구조을 보여주지 :
project/
|
|-- Gulp/
| |-- Base/
| |-- start-server.js
| |-- sass.js
| ...
| |-- Watch/
| |-- watch-sass.js
| ...
| |-- config.js
| ...
|-- gulpfile.js
| ...
이 또한 나를이 구조에서 언급 된 각 파일의 코드를 보여 드리겠습니다. gulpfile.js
/*jslint node: true */
"use strict";
var requireDir = require('require-dir'); // Node module to require whole directories
// ***** Require all tasks from Gulp folder *****
requireDir('./Gulp', {
recurse: true
});
꿀꺽/config.js
module.exports = {
paths: {
Project: {
dir: './',
src: './www',
dist: './dist'
},
HTML: {
all: './www/Views/**/**/*.html',
dir: './www/Views',
entry: './www/Views/index.html'
},
Sass: {
all: './www/StyleSheets/Sass/**/**/*.scss',
dir: './www/StyleSheets/Sass',
entry: './www/StyleSheets/Sass/main.scss',
map: '../../../dist/maps/sass',
vendor: './www/StyleSheets/Sass/Vendor/**/*.scss'
},
CSS: {
all: './www/StyleSheets/CSS/**/**/*.css',
dir: './www/StyleSheets/CSS',
entry: './www/StyleSheets/CSS/main.css',
map: '../../../dist/maps/css',
vendor: './www/StyleSheets/CSS/Vendor/**/*.css'
},
JS: {
all: './www/JavaScripts/**/**/*.js',
dir: './www/JavaScripts',
entry: './www/JavaScripts/app.js',
map: '../../../dist/maps/js',
vendor: './www/JavaScripts/Vendor/**/*.js'
},
// ...
}
};
꿀꺽/자료/자동 reload.js
var gulp = require('gulp'),
config = require('../config');
// ********* IMPORTS *********
var browserSync = require('browser-sync').create();
// ***END*** IMPORTS ***END***
// ***** Start server on localhost for live preview *****
gulp.task('start-server', function() {
browserSync.init({
server: {
baseDir: config.paths.Project.dir
},
open: true
});
});
꿀꺽/자료/sass.js
var gulp = require('gulp'),
config = require('../config');
// ********* IMPORTS *********
var sass = require('gulp-sass'),
browserSync = require('browser-sync'),
notify = require('gulp-notify'),
sourceMaps = require('gulp-sourcemaps');
// ***END*** IMPORTS ***END***
// ***** Sass compiler *****
gulp.task('sass', function() {
return gulp.src(config.paths.Sass.all)
.pipe(sourceMaps.init())
.pipe(sass({
style: 'compressed'
}))
.on("error", notify.onError(function (error) {
return "Error: " + error.message;
}))
.pipe(sourceMaps.write(config.paths.Sass.map))
.pipe(gulp.dest(config.paths.CSS.dir))
.pipe(browserSync.reload({
stream: true
}));
});
꿀꺽/시계/시계 - sass.js
var gulp = require('gulp'),
config = require('../config');
// ********* IMPORTS *********
var browserSync = require('browser-sync'),
runSequence = require('run-sequence');
// ***END*** IMPORTS ***END***
// ***** Gulp watch Sass files *****
gulp.task('watch-sass', ['start-server'], function() {
gulp.watch(config.paths.Sass.all, ['sass', browserSync.reload]);
});
문제 설명 :
마지막 파일에서 꿀꺽/시계/시계 - sass.js 함수 browserSync.reload 않습니다. 일. 'watch-sass start-server sass'이 작동하면 문제없이 실행됩니다. 그러나 * .scss 파일을 컴파일하고 나면 browserSync.reload를 사용하여 페이지를 자동 새로 고치지 않아 그 이유를 알 수 없습니다. 누구든지 나를 도울 수 있습니까?
그렇지 않습니다. 시계 기능은 Gulp의 핵심에 있으므로 딱딱한 것 이외에 다른 것을 요구하지 않아도됩니다. 또한 시계는 이미 설명 된대로 문제없이 작동하지만 Sass 파일을 컴파일 한 후 자동으로 페이지를 다시로드하는 것이 효과가 없습니다. – xeho91
흠. 내 꿀꺽 꿀꺽하고 파일을 다르게 작성한다고 가정합니다. 배열에 [ 'sass', browserSync]가있는 곳이 아닌가? 아니면 그런 종류의 지름길일까요? (나는 browserSync.reload를 어디에 두 었는지 이야기하고있다). –
browserSync.reload는 꿀꺽 거리는 작업 중 하나입니다. 배열에서 이러한 작업을 사용하면 이러한 모든 작업을 동시에 실행할 수 있습니다. 지금까지 내가 배운 것에서 적어도. – xeho91