angular - 在 scss 保存时重新加载页面

标签 angular gulp gulp-livereload

我正在使用官方 Quick start 玩 Angular 2指导。

package.json 文件中的开发依赖项允许通过保存 html 文件进行实时重新加载。

我还使用 Gulp 和 live reload scss to css 来装饰我的东西。

我想要的是将 Gulp 的 scss 实时重新加载与 Angular 2 的 html 实时重新加载绑定(bind)。我的意思是,当我在 scss 或 html 文件中保存更改时,我希望通过实时重新加载来完成这些更改。

目前,我只能通过在终端中运行 Gulp 命令或 npm start 命令来分别更改 scss 和 html。

我的 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"
 }
}

最佳答案

首先,您必须让 gulp 监视 scss 文件中的变化。

在你的 gulpfile.js

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

其次,您必须同时启动这个 gulp watch 到 tsc watch 和 lite 服务器。

在你的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"
 },

关于angular - 在 scss 保存时重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39734239/

相关文章:

node.js - gulp & nodemon 引起的内存泄漏

HTTP observable 返回 undefined/null

html - 如何阻止 mat-table 调整其列大小?

css - 如何在 Angular 中更改整个页面的背景颜色

css - gulpfile.js 帮助添加实时重新加载

javascript - Angular 8 : Run Component Class Methods Synchronously/Sequentially

html - 我看不到 .png 文件作为图像,但作为背景图像它可以工作

jquery - 如何部署 Bower 安装的包?

javascript - 使用 connect 在 Gulp 中创建动态服务器