Javascript文件只合并一次,sass文件不起作用
Javascript files only merge once, sass files not working
我在Gulp
中使用一个任务来选择文件夹中的所有.js
文件,并将它们合并到另一个文件夹中的一个文件中。当我在terminal
中键入gulp
时,它会连接到服务器并合并.js
文件,但当我保存在其中一个.js
文件中时,它不会更新。。。
此外,即使我有一个任务必须在更改时重新加载浏览器,但它没有。
var gulp = require('gulp');
var sass = require('gulp-sass');
var connect = require('gulp-connect');
var browserify = require('browserify');
var jquery = require('jquery');
var minify = require('gulp-minify-css');
var uglify = require('gulp-uglify');
var source = require('vinyl-source-stream');
var concat = require('gulp-concat');
var browserSync = require('browser-sync');
var reload = browserSync.reload;
gulp.task('connect',function(){
connect.server({
root: 'public',
port: 4000
});
});
//Save sass file to style.css
gulp.task('sass', function() {
return sass('css/style.scss')
.pipe(gulp.dest('public/css'))
.pipe(reload({stream: true}));
});
gulp.task('javascript', function() {
gulp.src('assets/js/**/*.js')
.pipe(uglify()).on('error', errorHandler)
.pipe(concat('all.js'))
.pipe(gulp.dest('./public/js'))
.pipe(reload({stream: true}));
});
gulp.task('default', ['connect', 'watch']);
gulp.task('serve', ['sass', 'javascript'], function () {
browserSync({
proxy: 'http://localhost:4000'
});
gulp.watch('assets/sass/*.scss', ['sass', browserSync.reload]);
gulp.watch('assets/js/**/*.js', ['javascript', browserSync.reload]);
});
gulp.task('default', ['serve', 'connect']);
function errorHandler (error) {
console.log(error.toString());
this.emit('end');
}
您可以简化使用browserSync.reload
的方式。试试这个:
1) 创建browserSync实例。通过替换var browserSync = require('browser-sync'); var reload = browserSync.reload;
将其放在var browserSync = require('browser-sync').create();
的顶部。
2) 在执行.pipe(reload({stream: true}));
的任何位置删除。
3) 接下来,修改您的"服务"任务。只有一行执行重新加载是很好的。下面的最后一个gulp.watch()
检查您的构建public
目录是否有更改,如果有更改,它将重新加载。不需要为"sass"answers"javascript"任务分别重新加载。另外,请注意,我们正在调用browserSync.init()
。
gulp.task('serve', ['sass', 'javascript'], function () {
browserSync.init({
proxy: 'http://localhost:4000'
});
gulp.watch('assets/sass/*.scss', ['sass']);
gulp.watch('assets/js/**/*.js', ['javascript']);
gulp.watch('public/**/*.{css,js}').on('change', browserSync.reload);
});
相关文章:
- 如何防止javascript一次打开过多的文件
- 当一次加载所有文件时,是否有来自阵列的10个随机闪存文件显示在页面上?(在javascript中)
- 如何在一次调用中使用jquery从外部文件中获取多个剑道ui模板
- nodejs:原子文件替换操作,只触发一次一些观察者
- 如何只包含一次javascript文件
- 尝试连续一次显示多个 php 文件
- 全局 JS 文件:仅执行一次 JSON 调用
- 我应该在每个文件中都需要一个模块还是需要它一次并将其作为参数传递
- 逐个查看文件夹中的照片,并根据一次击键移动到特定文件夹,具体取决于击键
- Chrome 确实会加载一次视频文件,但不会加载两次
- Javascript - 如何从文件加载变量并每 3 秒刷新一次
- 有没有办法让我的.js文件自毁,或重命名自己,或者在一次使用后将自己移动到新位置
- 如何使用 jQuery 选择多个文件.多文件.js插件?使用单个关闭按钮一次选择多个文件
- 如何使用 Jquery 获取 XML 文件,并在每次加载时以随机顺序显示元素一次
- 如何在 jsp 中一次上传多个 csv 文件
- 节点.js每 n 分钟重新加载一次外部文件
- 使用 Javascript/jQuery 一次播放一个 HTML 音频文件
- 表单上传一个文件一次,但当我再次上传同一文件时,它不适用于同一文件
- 在 JavaScript 闭包中加载一次 XML 文件
- Node.js性能-读取文件一次或每次请求