【问题标题】:gulp watch .js file doesn't workgulp watch .js 文件不起作用
【发布时间】:2016-08-29 09:31:31
【问题描述】:

gulpfile.js

'use strict';

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

gulp.task('serve')

// Static Server + watching scss/html files
gulp.task('serve', function() {

    browserSync.init({
        server: "./public"
    });

    gulp.watch('./public/**/*.html').on('change', reload); // worked
    gulp.watch('./public/**/*.js').on('change', reload); // doesn't work
});

gulp.task('sass', function () {
  return gulp.src('./public/sass/**/*.scss')
    .pipe(sass().on('error', sass.logError))
    .pipe(gulp.dest('./public/css'))
    .pipe(reload({stream: true}));
});

gulp.task('sass:watch', function () {
  gulp.watch('./public/sass/**/*.scss', ['sass'])
});

gulp.task('default', ['serve','sass', 'sass:watch']);

通过上述 gulp 设置,当我更改我的 html 和 sass 文件时,我的 broswersnyc 工作正常,但它不适用于 javascript 文件。

这是我的文件夹结构:

它与 AngularJS 有关系吗?因为我的app.js(在我的public 文件夹中)由AngularJS 控制器组成。

【问题讨论】:

  • 据我从您的屏幕截图中可以看出,您的app.js 不在您的public 文件夹中。
  • 在 gulpfile 中删除所有地方的 public

标签: javascript angularjs gulp browser-sync


【解决方案1】:

如果您将 app.js 移动到“public/js”文件夹,它将正常工作

gulp.watch('./public/**/*.js').on('change', reload); // doesn't work

因为在之前的 sn-p 中,您正在查看公共目录的子文件夹中的 js 文件。

你可以改用这条线,它可能会起作用

gulp.watch(['./public/**/*.js', './public/*.js']).on('change', reload);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 2015-03-20
    相关资源
    最近更新 更多