Перезагрузить страницу на scss сохранить

Я играю с Angular 2, используя официальное краткое руководство.

Зависимости Dev из файла package.json позволяют выполнять перезагрузку в реальном времени путем сохранения html-файлов.

Я также использую Gulp и live ress scss для css для украшения моих вещей.

То, что я хочу, - это связать живую перезагрузку scss с Gulp с прямой загрузкой html Angular 2. Я имею в виду, когда я сохраняю изменения либо в файле scss, либо в html-файле, я хочу, чтобы эти изменения выполнялись с живой перезагрузкой.

Пока что я могу вносить изменения в scss и html только отдельно, запустив команду Gulp или команду npm start в Терминале.

Мой код gulpfile.js:

var gulp = require('gulp');
var sass = require('gulp-sass');

gulp.task('sass', function(){
      return gulp.src('app/assets/scss/styles.scss')
   .pipe(sass())
   .pipe(gulp.dest('app/assets/css'))
});

Мой код package.json:

{
 "name": "app",
 "version": "1.0.0",
 "scripts": {
    "start": "concurrently \"npm run tsc:w\" \"npm run lite\" ",
    "lite": "lite-server",
    "postinstall": "typings install",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "typings": "typings"
 },
 "license": "ISC",
 "dependencies": {
   "@angular/common": "2.0.0",
   "@angular/compiler": "2.0.0",
   "@angular/core": "2.0.0",
   "@angular/forms": "2.0.0",
   "@angular/http": "2.0.0",
   "@angular/platform-browser": "2.0.0",
   "@angular/platform-browser-dynamic": "2.0.0",
   "@angular/router": "3.0.0",
   "@angular/upgrade": "2.0.0",
   "core-js": "^2.4.1",
   "reflect-metadata": "^0.1.3",
   "rxjs": "5.0.0-beta.12",
   "systemjs": "0.19.27",
   "zone.js": "^0.6.23",
   "angular2-in-memory-web-api": "0.0.20",
   "bootstrap": "^3.3.6"
 },
 "devDependencies": {
   "browser-sync": "^2.16.0",
   "concurrently": "^2.2.0",
   "gulp": "^3.9.1",
   "gulp-sass": "^2.3.2",
   "lite-server": "^2.2.2",
   "typescript": "^2.0.2",
   "typings": "^1.3.2"
 }
}

1 ответ

Во-первых, вы должны сказать своим глотком следить за изменениями в вашем scss файл.

В тебе gulpfile.js

//Watch task
gulp.task('sassWatch',function() {
    gulp.watch('app/assets/scss/**/*.scss',['sass']);
});

Во-вторых, вы должны запустить эти gulp watch одновременно с tsc watch и lite server.

В вашем package.json

"scripts": {
    "start": "concurrently \"npm run sass:w\" \"npm run tsc:w\" \"npm run lite\" ",
    "lite": "lite-server",

    "postinstall": "typings install",

    "tsc": "tsc",
    "tsc:w": "tsc -w",

    "sass": "gulp sass",
    "sass:w": "gulp sassWatch", 

    "typings": "typings"
 },
Другие вопросы по тегам