Goal

I'm updating my old gulpfile.js, which used to be mainly for compiling my Sass into CSS, but now I'm trying to get Gulp to do the following:

我正在更新我的旧gulpfile。js,以前主要是把Sass编译成CSS,现在我想让Gulp做以下事情:

  1. Sync browser, whip up localhost server - DONE
  2. 同步浏览器,启动本地主机服务器-完成
  3. Compile Sass => CSS - DONE
  4. 编译Sass => CSS -完成。
  5. Show any JavaScript errors with JSHint - DONE
    • Compile ES6 => ES6 with Babel (WORKING ON)
    • 编译ES6 => ES6与Babel(工作)
  6. 使用JSHint - DONE编译ES6 => ES6显示任何JavaScript错误(使用Babel)
  7. Minify all assets (WORKING ON)
    • Show project file size - DONE
    • 显示项目文件大小-完成
  8. 缩小所有的资产(工作)显示项目文件大小-完成。
  9. Deploy index.html, style.css and images to S3 (WORKING ON)
  10. 部署指数。html,风格。css和图片到S3(工作)
  11. Watch files, reload browser when .scss or .html changes - DONE
  12. 观察文件,当.scss或.html更改完成时重新加载浏览器

Problem

  • Trying to minify my Javascript and also create a scripts.min.js file, it keeps adding the suffix min to every new minified JavaScript file.
  • 试图缩小我的Javascript并创建一个scripts.min。在js文件中,它不断地在每一个新的小JavaScript文件中添加后缀min。

Folder structure

index.html
gulpfile.js
package.json
.aws.json
.csscomb.json
.gitignore

assets
- css
style.css
style.scss

--partials
---base
---components
---modules

- img
- js
scripts.js

- dist

gulpfile.js

// Include Gulp
var gulp = require('gulp');
var postcss = require("gulp-postcss");

// All of your plugins
var autoprefixer = require('autoprefixer');
var browserSync = require('browser-sync');
var cache = require('gulp-cache');
var concat = require('gulp-concat');
var csswring = require("csswring");
var imagemin = require('gulp-imagemin');
var jshint = require('gulp-jshint');
var lost = require("lost");
var plumber = require('gulp-plumber');
var rename = require('gulp-rename');
var rucksack = require("rucksack-css");
var sass = require('gulp-sass');
var uglify = require('gulp-uglify');

// Sync browser, whip up server
gulp.task('browser-sync', function() {
  browserSync({
    server: {
       baseDir: "./"
    }
  });
});

// Reload page automagically
gulp.task('bs-reload', function () {
  browserSync.reload();
});

// Compile Sass into CSS, apply postprocessors
gulp.task('styles', function(){
  var processors = [
      autoprefixer({browsers: ['last 2 version']}),
      csswring,
      lost,
      rucksack
  ];

  gulp.src(['assets/css/**/*.scss'])
    .pipe(plumber({
      errorHandler: function (error) {
        console.log(error.message);
        this.emit('end');
    }}))
    .pipe(sass())
    .pipe(postcss(processors))
    // .pipe(gulp.dest('assets/css/'))
    // .pipe(rename({suffix: '.min'}))
    .pipe(gulp.dest('assets/css/'))
    .pipe(browserSync.reload({stream:true}))
});

// Show any JavaScript errors
gulp.task('scripts', function(){
  return gulp.src('assets/js/**/*.js')
    .pipe(plumber({
      errorHandler: function (error) {
        console.log(error.message);
        this.emit('end');
    }}))
    .pipe(jshint())
    .pipe(jshint.reporter('default'))
    // .pipe(concat('main.js'))
    // .pipe(babel())
    .pipe(gulp.dest('assets/js/'))
    .pipe(uglify())
    .pipe(gulp.dest('assets/js/'))
    .pipe(rename({suffix: '.min'}))
    .pipe(browserSync.reload({stream:true}))
});

// Minify assets, create build folder
gulp.task('images', function(){
  gulp.src('assets/img/**/*')
    .pipe(cache(imagemin({ optimizationLevel: 3, progressive: true, interlaced: true })))
    .pipe(gulp.dest('assets/img'));
});

// Minify HTML


// Default task
gulp.task('default', ['browser-sync'], function(){
  gulp.watch("assets/css/**/*.scss", ['styles']);
  gulp.watch("assets/js/**/*.js", ['scripts']);
  gulp.watch("*.html", ['bs-reload']);
  gulp.start("images", "styles", "scripts")
});

// var babel = require('gulp-babel');
// var minifyhtml = require("gulp-minify-html");
// var size = require("gulp-size");
// var upload = require("gulp-s3");

1 个解决方案

#1


1

Hi i can't solve all your problems but I had also a similar issue with the babel and ES6 fat arrow functions (using babelify and browserify). To solve the problem try to pass:

嗨,我不能解决你所有的问题,但是我也有一个类似的问题,babel和ES6 fat箭头函数(使用babelify和browserify)。要解决问题,试着通过:

stage: 0

to your babel.js gulp plugin. If error will still occurs then try to pass also:

你的巴别塔。js大口插件。如果仍然出现错误,请尝试通过:

experimental: true

For more information please have a look "experimental" section on babel.js site.

要了解更多信息,请查看babel的“实验”部分。js站点。

更多相关文章

  1. 怎么javascript读取本地文件中的数据,并显示在html上
  2. js读写文件(ActiveXObject只支持ie7以前的版本)
  3. 使用没有后端脚本的Angularjs上传文件(例如PHP,JAVA等)
  4. JS获取文件名的方法
  5. 使用Jquery Ajax更改按钮的颜色(从外部PHP文件接收颜色)
  6. jQuery Slimbox没有正确请求文件
  7. 利用javascript实现遍历xml文件的代码实例
  8. 使用jQuery导出JSON(外部文件)导入数据的度假输出
  9. JQuery纯前端导入Excel文件,兼容IE10及IE9版本以下浏览器处理方法

随机推荐

  1. Android学习系列(39)--Android主题和样式
  2. Android UI Action Bar之ActionBarSherlo
  3. 社区讨论:Android的架构设计
  4. Android(安卓)开发之集成百度地图的定位
  5. 原有Android项目集成RN入坑计(一)
  6. android网络编程――使用Android中的网络
  7. Android 如何进行js交互
  8. Android WebView介绍
  9. Android Develop
  10. Android多分辨率适配实践【1】使用字体图