更新:在Gulpfile中带有postCSS和Babel的错误
16lz
2021-01-22
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做以下事情:
- Sync browser, whip up localhost server - DONE
- 同步浏览器,启动本地主机服务器-完成
- Compile Sass => CSS - DONE
- 编译Sass => CSS -完成。
- Show any JavaScript errors with JSHint - DONE
- Compile ES6 => ES6 with Babel
(WORKING ON)
- 编译ES6 => ES6与Babel(工作)
- Compile ES6 => ES6 with Babel
- 使用JSHint - DONE编译ES6 => ES6显示任何JavaScript错误(使用Babel)
- Minify all assets
(WORKING ON)
- Show project file size - DONE
- 显示项目文件大小-完成
- 缩小所有的资产(工作)显示项目文件大小-完成。
- Deploy index.html, style.css and images to S3
(WORKING ON)
- 部署指数。html,风格。css和图片到S3(工作)
- Watch files, reload browser when
.scss
or.html
changes - DONE - 观察文件,当.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站点。
更多相关文章
- 怎么javascript读取本地文件中的数据,并显示在html上
- js读写文件(ActiveXObject只支持ie7以前的版本)
- 使用没有后端脚本的Angularjs上传文件(例如PHP,JAVA等)
- JS获取文件名的方法
- 使用Jquery Ajax更改按钮的颜色(从外部PHP文件接收颜色)
- jQuery Slimbox没有正确请求文件
- 利用javascript实现遍历xml文件的代码实例
- 使用jQuery导出JSON(外部文件)导入数据的度假输出
- JQuery纯前端导入Excel文件,兼容IE10及IE9版本以下浏览器处理方法