tousignant-christopher
8/2/2018 - 3:43 PM

WP Node/Gulp/Webpack

For basic projects

module.exports = {
    output: {
        filename: 'index.min.js',
    },
    module: {
        rules: [
            {
                test: /\.(js|jsx)$/,
                exclude: /(node_modules)/,
                loader: 'babel-loader',
                query: {
                    presets: [
                        'react', 'es2015'
                    ],
                },
            },
        ],
    },
};
let gulp        = require('gulp');
let concat      = require('gulp-concat');
let sourcemaps  = require('gulp-sourcemaps');
let sass        = require('gulp-sass');
let webpack     = require('webpack');
let webpackStream = require('webpack-stream');
let webpackConfig = require('./webpack.config.js');

/* BOOTSTRAP LIB */
gulp.task( 'bootstrap-theme', function() {
    return gulp.src('./app_theme/assets/sass/theme.scss')
        .pipe(sourcemaps.init())
        .pipe(sass({outputStyle:'compressed'})
            .on('error', sass.logError))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./app_theme/assets/dist/'));
} );

/* BOOTSTRAP ALERT */
gulp.task('alert-babel', function () {
    return gulp.src(['./app_code/blocks/alert/js/index.js'])
        .pipe(webpackStream(webpackConfig), webpack)
        .pipe(gulp.dest('./app_code/blocks/alert/js'));
});
gulp.task( 'alert-sass', function() {
    return gulp.src('./app_code/blocks/alert/css/style.scss')
        .pipe(sourcemaps.init())
        .pipe(sass({outputStyle:'compressed'})
            .on('error', sass.logError))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./app_code/blocks/alert/css'));
} );
gulp.task( 'alert-sass-editor', function() {
    return gulp.src('./app_code/blocks/alert/css/editor-style.scss')
        .pipe(sourcemaps.init())
        .pipe(sass({outputStyle:'compressed'})
            .on('error', sass.logError))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./app_code/blocks/alert/css'));
} );

/* BOOTSTRAP BADGE */
gulp.task('badge-babel', function () {
    return gulp.src(['./app_code/blocks/badge/js/index.js'])
        .pipe(webpackStream(webpackConfig), webpack)
        .pipe(gulp.dest('./app_code/blocks/badge/js'));
});
gulp.task( 'badge-sass', function() {
    return gulp.src('./app_code/blocks/badge/css/style.scss')
        .pipe(sourcemaps.init())
        .pipe(sass({outputStyle:'compressed'})
            .on('error', sass.logError))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./app_code/blocks/badge/css'));
} );
gulp.task( 'badge-sass-editor', function() {
    return gulp.src('./app_code/blocks/badge/css/editor-style.scss')
        .pipe(sourcemaps.init())
        .pipe(sass({outputStyle:'compressed'})
            .on('error', sass.logError))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./app_code/blocks/badge/css'));
} );

/* BOOTSTRAP BREADCRUMBS */
gulp.task('breadcrumbs-babel', function () {
    return gulp.src(['./app_code/blocks/breadcrumbs/js/index.js'])
        .pipe(webpackStream(webpackConfig), webpack)
        .pipe(gulp.dest('./app_code/blocks/breadcrumbs/js'));
});
gulp.task( 'breadcrumbs-sass', function() {
    return gulp.src('./app_code/blocks/breadcrumbs/css/style.scss')
        .pipe(sourcemaps.init())
        .pipe(sass({outputStyle:'compressed'})
            .on('error', sass.logError))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./app_code/blocks/breadcrumbs/css'));
} );
gulp.task( 'breadcrumbs-sass-editor', function() {
    return gulp.src('./app_code/blocks/breadcrumbs/css/editor-style.scss')
        .pipe(sourcemaps.init())
        .pipe(sass({outputStyle:'compressed'})
            .on('error', sass.logError))
        .pipe(sourcemaps.write())
        .pipe(gulp.dest('./app_code/blocks/breadcrumbs/css'));
} );
{
  "name": "name",
  "version": "version",
  "description": "description",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Christopher Tousignant",
  "license": "ISC",
  "devDependencies": {
    "autoprefixer": "^8.6.5",
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "babel-preset-es2015": "^6.24.1",
    "babel-preset-react": "^6.24.1",
    "gulp": "^3.9.1",
    "gulp-concat": "^2.6.1",
    "gulp-sass": "^4.0.1",
    "gulp-sourcemaps": "^2.6.4",
    "gulp-watch": "^5.0.0",
    "gulp-webpack": "^1.5.0",
    "webpack-stream": "^4.0.3"
  },
  "dependencies": {}
}