@@ -6,12 +6,13 @@ import path from 'path';
66import browserify from 'browserify' ;
77import vueify from 'vueify' ;
88import babelify from 'babelify' ;
9+ import tfilter from 'tfilter' ;
910import modulesify from 'css-modulesify' ;
1011import aliasify from 'aliasify' ;
1112import source from 'vinyl-source-stream' ;
1213import buffer from 'vinyl-buffer' ;
1314import { argv } from 'yargs' ;
14- import { dirs } from './config' ;
15+ import { dirs , extended } from './config' ;
1516import { customSass } from './compilers' ;
1617
1718gulp . task ( 'build:test' , ( ) => gulp . src ( [
@@ -24,6 +25,12 @@ gulp.task('build:test', () => gulp.src([
2425 . pipe ( gulp . dest ( dirs . buildTest ) ) ) ;
2526
2627gulp . task ( 'build:client' , [ 'copy:client' , 'copy:config:server' ] , ( ) => {
28+ // Node modules to be included in babel transpilation
29+ // Use this with ES6 modules for example
30+ const bModules = [ ] ;
31+
32+ if ( extended ) bModules . push ( 'bootstrap-vue/es' ) ;
33+
2734 vueify . compiler . applyConfig ( {
2835 sass : {
2936 includePaths : [
@@ -36,13 +43,49 @@ gulp.task('build:client', ['copy:client', 'copy:config:server'], () => {
3643 } ) ;
3744
3845 const b = browserify ( {
39- entries : path . resolve ( dirs . srcClient , 'main.js' ) ,
46+ entries : [
47+ path . resolve ( dirs . srcClient , 'main.js' ) ,
48+ ...bModules . map ( mod => path . resolve ( dirs . modules , mod ) ) ,
49+ ] ,
4050 debug : true ,
4151 } ) ;
4252
53+ // Transpile .vue
4354 b . transform ( vueify ) ;
4455
45- b . transform ( babelify , { plugins : [ 'transform-runtime' ] } ) ;
56+ // Babel Settings with module filter
57+ const bSettings = {
58+ plugins : [ 'transform-runtime' ] ,
59+ } ;
60+
61+ b . transform ( tfilter (
62+ babelify ,
63+ {
64+ filter : ( filename ) => {
65+ const exception = bModules . some (
66+ mod => filename . includes (
67+ path . resolve ( dirs . modules , mod )
68+ )
69+ ) ;
70+ if ( exception ) {
71+ // node module
72+ // console.log('Transpiling module', filename);
73+ return true ;
74+ } else if ( ! filename . includes ( dirs . modules ) ) {
75+ // filter not in node_modules
76+ // console.log('Transpiling src', filename);
77+ return true ;
78+ }
79+ // console.log('NOT transpiling', filename);
80+ return false ;
81+ } ,
82+ } ,
83+ {
84+ ...bSettings ,
85+ global : true ,
86+ presets : [ 'env' ] ,
87+ }
88+ ) ) ;
4689
4790 b . plugin ( modulesify , {
4891 output : path . resolve (
0 commit comments