@@ -2,7 +2,9 @@ const fs = require('fs');
22const path = require ( 'path' ) ;
33const ncp = require ( 'ncp' ) ;
44const glob = require ( 'glob' ) ;
5+ const babel = require ( '@babel/core' ) ;
56
7+ const modData = require ( '../index.json' ) ;
68let util = require ( './util' ) ;
79
810module . exports = function ( ) {
@@ -64,9 +66,14 @@ function genCbs(files, pkgName) {
6466 let modName = util . last ( file . split ( '/' ) ) . slice ( 0 , - 3 ) ;
6567
6668 ret . push ( function ( cb ) {
67- fs . readFile ( file , 'utf-8' , function ( err , data ) {
69+ fs . readFile ( file , 'utf-8' , async function ( err , data ) {
6870 if ( err ) return cb ( err ) ;
6971
72+ const env = modData [ modName ] . env ;
73+ if ( env === 'browser' || env === 'all' ) {
74+ data = await transBabel ( data ) ;
75+ }
76+
7077 if ( pkgName === 'eustia-module' ) {
7178 fs . writeFile (
7279 path . resolve ( './packages/' + pkgName , modName + '.js' ) ,
@@ -115,14 +122,34 @@ function transToCommonjs(data) {
115122 let len = dependencies . length ;
116123
117124 util . each ( dependencies , function ( val , i ) {
118- requires += ' ' + val + " = require('./" + val + "')" ;
125+ requires += 'const ' + val + " = require('./" + val + "'); " ;
119126
120- if ( i !== len - 1 ) requires += ', \n' ;
127+ if ( i !== len - 1 ) requires += '\n' ;
121128 } ) ;
122129
123- requires = '\n\nvar ' + util . trim ( util . trim ( requires ) , ', ' ) + ';' ;
130+ if ( requires ) {
131+ requires = '\n\n' + requires ;
132+ }
124133
125134 data = data . replace ( regDependence , requires ) ;
126135
127136 return data ;
128137}
138+
139+ function transBabel ( data ) {
140+ return new Promise ( ( resolve , reject ) => {
141+ babel . transform (
142+ data ,
143+ {
144+ presets : [ [ '@babel/preset-env' , { modules : false } ] ] ,
145+ plugins : [ ]
146+ } ,
147+ function ( err , result ) {
148+ if ( err ) {
149+ return reject ( err ) ;
150+ }
151+ resolve ( result . code ) ;
152+ }
153+ ) ;
154+ } ) ;
155+ }
0 commit comments