gulpfile build

master
f0x 5 years ago
parent 4ad9d1ad4f
commit 0e0fcb08cb

2
.gitignore vendored

@ -1,2 +1,2 @@
dist build
node_modules node_modules

@ -1,17 +1,26 @@
const gulp = require('gulp'); const gulp = require('gulp')
const sass = require('gulp-sass'); const sass = require('gulp-sass')
const concat = require('gulp-concat'); const concat = require('gulp-concat')
const gutil = require('gulp-util'); const gutil = require('gulp-util')
const imagemin = require('gulp-imagemin')
const cache = require('gulp-cache')
const gulpIf = require('gulp-if')
const browserify = require('browserify')
const del = require('del')
var budo = require('budo') const source = require('vinyl-source-stream')
var babelify = require('babelify') const buffer = require('vinyl-buffer')
const sourcemaps = require('gulp-sourcemaps')
const cssFiles = 'public/scss/**/*.?(s)css'; const budo = require('budo')
const babelify = require('babelify')
const cssFiles = 'public/scss/**/*.?(s)css'
let css = gulp.src(cssFiles) let css = gulp.src(cssFiles)
.pipe(sass()) .pipe(sass())
.pipe(concat('style.css')) .pipe(concat('style.css'))
.pipe(gulp.dest('assets')); .pipe(gulp.dest('build'))
gulp.task('watch', function(cb) { gulp.task('watch', function(cb) {
budo("app.js", { budo("app.js", {
@ -20,12 +29,59 @@ gulp.task('watch', function(cb) {
browserify: { browserify: {
transform: babelify transform: babelify
} }
}).on('exit', cb); }).on('exit', cb)
gulp.watch(cssFiles, function() { gulp.watch(cssFiles, gulp.series(["sass"]))
console.log("Compiling CSS") })
return gulp.src(cssFiles)
.pipe(sass()) gulp.task("clean", function(done) {
.pipe(concat('style.css')) del.sync('build')
.pipe(gulp.dest('./dist')) done()
}); })
});
gulp.task("sass", function() {
return gulp.src(cssFiles)
.pipe(sass())
.pipe(concat('style.css'))
.pipe(gulp.dest('./build'))
})
gulp.task("assets", function() {
return gulp.src(["public/**/*", "!public/scss", "!public/scss/**/*"])
.pipe(gulpIf('*.+(png|jpg|jpeg|gif|svg)',
cache(imagemin({
interlaced: true
}))
))
.pipe(gulp.dest('build'))
})
gulp.task('js', function() {
return gulp.src(['app.js', "components/**/*"])
.pipe(babel({
presets: [
['@babel/env', {
modules: false
}]
]
}))
.pipe(gulp.dest('build'))
})
gulp.task('js', function() {
let b = browserify({
entries: 'app.js',
debug: false,
transform: [babelify.configure({
presets: ['@babel/preset-env', '@babel/preset-react']
})]
})
return b.bundle()
.pipe(source('app.js'))
.pipe(buffer())
.pipe(sourcemaps.init({ loadMaps: true }))
.pipe(gulp.dest('build'))
})
gulp.task('build', gulp.parallel(['clean', 'assets', 'js', 'sass', function(done) {
done()
}]))

@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="/dist/style.css">
</head>
<body>
<div id='root'>
</div>
<script src="app.js"></script>
</body>
</html>

@ -14,17 +14,29 @@
"@babel/preset-react": "^7.0.0", "@babel/preset-react": "^7.0.0",
"babelify": "^10.0.0", "babelify": "^10.0.0",
"bluebird": "^3.5.3", "bluebird": "^3.5.3",
"browserify": "^16.2.3",
"budo": "^11.5.0", "budo": "^11.5.0",
"create-react-class": "^15.6.3", "create-react-class": "^15.6.3",
"debounce": "^1.2.0", "debounce": "^1.2.0",
"del": "^3.0.0",
"gulp": "^4.0.0", "gulp": "^4.0.0",
"gulp-babel": "^8.0.0",
"gulp-browserify": "^0.5.1",
"gulp-cache": "^1.1.0",
"gulp-cli": "^2.0.1", "gulp-cli": "^2.0.1",
"gulp-concat": "^2.6.1", "gulp-concat": "^2.6.1",
"gulp-copy": "^4.0.1",
"gulp-if": "^2.0.2",
"gulp-imagemin": "^5.0.3",
"gulp-sass": "^4.0.2", "gulp-sass": "^4.0.2",
"gulp-sourcemaps": "^2.6.4",
"gulp-util": "^3.0.8", "gulp-util": "^3.0.8",
"jdenticon": "^2.1.1", "jdenticon": "^2.1.1",
"livereactload": "^4.0.0-beta.2",
"react": "^16.6.3", "react": "^16.6.3",
"react-dom": "^16.6.3", "react-dom": "^16.6.3",
"vinyl-buffer": "^1.0.1",
"vinyl-source-stream": "^2.0.0",
"webpack": "^4.27.1" "webpack": "^4.27.1"
}, },
"devDependencies": { "devDependencies": {

Loading…
Cancel
Save