首页
学习
活动
专区
圈层
工具
发布

PHP肝
EN

Stack Overflow用户
提问于 2015-04-29 07:08:34
回答 1查看 894关注 0票数 2

我从这里中抓取并修改了一个gulp文件:

代码语言:javascript
复制
var gulp            =   require('gulp'),
    path            =   require('path'),
    del             =   require('del'),
    run             =   require('run-sequence'),
    sass            =   require('gulp-sass'),
    autoprefixer    =   require('gulp-autoprefixer'),
    include         =   require('gulp-include'),
    imagemin        =   require('gulp-imagemin'),
    svgmin          =   require('gulp-svgmin'),
    cache           =   require('gulp-cache'),
    watch           =   require('gulp-watch'),
    livereload      =   require('gulp-livereload')
    //lr              =   require('tiny-lr'),
    //server          =   lr()
;

var config = {
    // Source Config
    src                 :    'src',                         // Source Directory
    src_assets          :    'src/assets',                  // Source Assets Directory
    src_fonts           :    'src/assets/fonts',            // Source Fonts Directory
    src_images          :    'src/assets/img',              // Source Images Directory
    src_javascripts     :    'src/assets/js',               // Source Javascripts Directory
    src_stylesheets     :    'src/assets/styles',              // Source Styles Sheets Directory
    src_main_scss       :    'src/assets/styles/main.scss',    // Source main.scss
    src_main_js         :    'src/assets/scripts/main.js',       // Source main.js
    // Destination Config
    dist                :    'dist',                        // Destination Directory
    dist_assets         :    'dist/assets',                 // Destination Assets Directory
    dist_fonts          :    'dist/assets/fonts',           // Destination Fonts Directory
    dist_images         :    'dist/assets/img',             // Destination Images Directory
    dist_javascripts    :    'dist/assets/js',              // Destination Javascripts Directory
    dist_stylesheets    :    'dist/assets/css',             // Destination Styles Sheets Directory
    // Auto Prefixer
    autoprefix          :    'last 3 version'             // Number of version Auto Prefixer to use
};

gulp.task('styles', function () {
    return gulp.src(config.src_main_scss)
        .pipe(sass({
            outputStyle: 'expanded',
            precision: 10,
            sourceComments: 'none'
        }))
        .pipe(autoprefixer(config.autoprefix))
        .pipe(gulp.dest(config.dist_stylesheets))
        .pipe(livereload())
});

gulp.task('scripts', function () {
    gulp.src(config.src_main_js)
        .pipe(include())
        .pipe(gulp.dest(config.dist_javascripts))
        .pipe(livereload())
});

gulp.task('php', function() {
    return gulp.src([path.join(config.src, '/**/*.php')])
        .pipe(gulp.dest(config.dist))
        .pipe(livereload())
});

gulp.task('images', function() {
    gulp.src(path.join(config.src_images, '/**/*.png'))
        .pipe(cache(imagemin({ optimizationLevel: 5, progressive: true, interlaced: true })))
        .pipe(gulp.dest(config.dist_images))
});

gulp.task('svg', function() {
    gulp.src(path.join(config.src_images, '/**/*.svg'))
        .pipe(svgmin())
        .pipe(gulp.dest(config.dist_images))
});

gulp.task('clean', function() {
    del(path.join(config.dist, '/**/*'))
});

gulp.task('watch', function() {
    //server.listen(35729, function (err) {
    //    if (err) {
    //        return console.log(err)
    //    };
        gulp.watch(path.join(config.src_stylesheets, '/**/*.scss'), ['styles']);
        gulp.watch(path.join(config.src_javascripts, '/**/*.js'), ['scripts']);
        gulp.watch(path.join(config.src, '/**/*.php'), ['php']);
    //});
});

gulp.task('default', function(cb) {
    run('build', ['watch'], cb);
});

gulp.task('build', function (cb) {
    run('clean', 'styles', 'scripts', 'php', 'images', 'svg', cb);
});

现在,如果我运行“gulp”,但是,当我运行apache主机时,实时重新加载将不再工作。

我不太熟悉现场重装,所以请带我通过任何解决方案。

我已经安装了活重新加载插件,并打开它,仍然没有工作。

我是不是和我的主人失足了一步?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-01 15:26:56

好吧,我不知道这个Gulpfile当初答应了你什么,但我在这里遗漏了两件事:

  • 任何连接到您的启动和运行服务器。
  • 在HTML文件中插入Livereload的位置。肝脏需要知道该在哪里注射,只是不能自动发挥作用。

这可能很棘手,特别是当您已经启动并运行了一台服务器,并且需要大量的配置时。BrowserSync是一个工具,它可以很容易地与Gulp集成,并且有一个很好的开箱即用的肝脏设置。您可以直接引导它并为您拥有的任何正在运行的服务器创建一个代理。它还将负责插入LiveReload片段。我强烈建议你转向那个话题,特别是如果你对这个话题很陌生的话。我所做的一切只是为了你:-)

我曾写过关于BrowserSync 这里的文章,但以下是您需要做的一些更改:

设置BrowserSync

将以下内容添加到您的Gulpfile中:

代码语言:javascript
复制
var browserSync = require('browser-sync');

browserSync({
    proxy: 'localhost:80',
    port: 8080,
    open: true,
    notify: false
});

(别忘了先去npm install --save-dev browser-sync )。这将创建一个新服务器,代理MAMP并注入LiveReload所需的一切。在localhost:8080打开您的页面(BrowserSync会为您自己做),您已经准备好了

添加一个重新加载调用

在放置livereload的地方,将其更改为

代码语言:javascript
复制
.pipe(browserSync.reload({stream: true}))

例如,就像这样:

代码语言:javascript
复制
gulp.task('scripts', function () {
    return gulp.src(config.src_main_js)
        .pipe(include())
        .pipe(gulp.dest(config.dist_javascripts))
        .pipe(browserSync.reload({stream:true}))
});

这将触发LiveReload并刷新您的源代码。确保你在任何地方都有它,在那里你可以改变东西。

比你能去的还要多。祝好运!

还有一件事

请在每个return之前写一个小的gulp.src语句。这将让Gulp知道您正在处理流,使它更能够处理流。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29936619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档