【问题标题】:Vieing gulp node hbs project争夺 gulp 节点 hbs 项目
【发布时间】:2015-06-13 08:04:47
【问题描述】:

我得到了一个项目,让我看看我一无所知,因为我是一名后端开发人员,我周围的人也没有多少了解。该结构基本上是根目录上的 gulpfile,带有 srcnode_modulesdist 文件夹。 src 文件夹中有 .hbs 文件。

基本上,我不知道如何让这个项目在浏览器中运行。我猜我需要在节点服务器上运行这个项目?我真的不知道从哪里开始。

请指教。

var gulp         = require('gulp');
var plumber      = require('gulp-plumber');
var sass         = require('gulp-ruby-sass');
var autoprefixer = require('gulp-autoprefixer');
var minifycss    = require('gulp-minify-css');
var jshint       = require('gulp-jshint');
var uglify       = require('gulp-uglify');
var imagemin     = require('gulp-imagemin');
var pngquant     = require('imagemin-pngquant');
var rename       = require('gulp-rename');
var concat       = require('gulp-concat');
var replace      = require('gulp-replace');
var cache        = require('gulp-cache');
var livereload   = require('gulp-livereload');
var hb           = require('gulp-hb');
var minifyHTML   = require('gulp-minify-html');
var del          = require('del');
var awspublish   = require('gulp-awspublish');
var fs           = require('fs');

// DEFAULT
// ======================================================
gulp.task('default', ['clean'], function() {
  gulp.start('templates', 'styles', 'scripts', 'libs', 'images');
});

// TEMPLATES
// ======================================================
gulp.task('templates', function() {
  return gulp.src('./src/*.hbs')
    .pipe(hb({
      partials: ['./src/partials/**/*.hbs']
    }))
    .pipe(minifyHTML())
    .pipe(rename(function(path){
      path.extname = ".html";

      if (path.basename == "index") { return; }

      path.dirname = path.basename.split('-').join('/');
      path.basename = "index";
    }))
    .pipe(gulp.dest('./dist/'));
});

// STYLES
// ======================================================
gulp.task('styles', function() {
  return gulp.src('src/styles/main.scss')
    .pipe(sass({
      style: 'expanded',
      "sourcemap=none": true
    }))
    .pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
    .pipe(gulp.dest('dist/assets/css'))
    .pipe(rename({ suffix: '.min' }))
    .pipe(minifycss())
    .pipe(gulp.dest('dist/assets/css'))
});

// SCRIPTS
// ======================================================
gulp.task('scripts', function() {
  return gulp.src('src/scripts/main.js')
    .pipe(plumber())
    .pipe(jshint())
    .pipe(jshint.reporter('default'))
    .pipe(gulp.dest('dist/assets/js'))
    .pipe(rename({suffix: '.min'}))
    .pipe(uglify())
    .pipe(gulp.dest('dist/assets/js'))
});

// LIBS
// ======================================================
gulp.task('libs', function() {
  return gulp.src('src/scripts/lib/*.js')
    .pipe(gulp.dest('dist/assets/js/lib'))
});

// IMAGES
// ======================================================
gulp.task('images', function() {
  return gulp.src('src/images/**/*')
    .pipe(imagemin({
        progressive: true,
        use: [pngquant()]
    }))
    .pipe(gulp.dest('dist/assets/img'))
});

// CLEAN
// ======================================================
gulp.task('clean', function(cb) {
  del(['dist/assets/css', 'dist/assets/js', 'dist/assets/img'], cb);
});

// WATCH
// ======================================================
gulp.task('watch', function() {
  gulp.watch('src/**/*.hbs', ['templates']);
  gulp.watch('src/styles/**/*.scss', ['styles']);
  gulp.watch('src/scripts/**/*.js', ['scripts']);
  gulp.watch('src/images/**/*', ['images']);

  livereload.listen();
  gulp.watch(['dist/**']).on('change', livereload.changed);
});

// PUBLISH (to S3 Bucket)
// ======================================================
var websiteUrl = '//whatever.com/';
var aws        = JSON.parse(fs.readFileSync('./aws.json'));
var headers    = { 'Cache-Control': 'max-age=315360000, no-transform, public' };
var publisher  = awspublish.create(
  {
    key: aws.key,
    secret: aws.secret,
    bucket: aws.bucket,
    region: aws.region
  }
);

gulp.task('cdnize', function() {
  return gulp.src('./dist/**/*.html')
    .pipe(replace('http://0.0.0.0:8080/', websiteUrl))
    .pipe(gulp.dest('./dist/'))
});

gulp.task('publish', ['cdnize'], function() {
  return gulp.src('./dist/**')
    .pipe(publisher.publish(headers))
    .pipe(awspublish.reporter());
});

【问题讨论】:

  • 请向我们展示您的 Gulpfile,否则我们将无法为您提供帮助。
  • 对不起,我已经包含了 gulpfile 的内容。我对此几乎一无所知,所以我不知道您需要查看它的内容。

标签: node.js handlebars.js gulp frontend


【解决方案1】:

只需在命令行上运行gulp

【讨论】:

    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    相关资源
    最近更新 更多