@@ -12,8 +12,7 @@ import nodeResolve from 'rollup-plugin-node-resolve';
1212import buble from 'rollup-plugin-buble' ;
1313import uglify from 'rollup-plugin-uglify' ;
1414import postcss from 'rollup-plugin-postcss' ;
15- // import replace from 'rollup-plugin-post-replace';
16- import es3 from 'rollup-plugin-es3' ;
15+ import alias from 'rollup-plugin-strict-alias' ;
1716import gzipSize from 'gzip-size' ;
1817import prettyBytes from 'pretty-bytes' ;
1918import shebangPlugin from 'rollup-plugin-preserve-shebang' ;
@@ -176,11 +175,25 @@ function createConfig(options, entry, format, writeMeta) {
176175 let nameCache = { } ;
177176 let mangleOptions = options . pkg . mangle || false ;
178177
178+ let exportType ;
179+ if ( format != 'es' ) {
180+ try {
181+ let file = fs . readFileSync ( entry , 'utf-8' ) ;
182+ let hasDefault = / \b e x p o r t \s * d e f a u l t \s * [ a - z A - Z _ $ ] / . test ( file ) ;
183+ let hasNamed = / \b e x p o r t \s * ( l e t | c o n s t | v a r | a s y n c | f u n c t i o n \* ? ) \s * [ a - z A - Z _ $ * ] / . test ( file ) || / ^ \s * e x p o r t \s * \{ / m. test ( file ) ;
184+ if ( hasDefault && hasNamed ) exportType = 'default' ;
185+ }
186+ catch ( e ) { }
187+ }
188+
179189 let config = {
180190 inputOptions : {
181- input : entry ,
191+ input : exportType ? resolve ( __dirname , '../src/lib/__entry__.js' ) : entry ,
182192 external,
183193 plugins : [ ] . concat (
194+ alias ( {
195+ __microbundle_entry__ : entry
196+ } ) ,
184197 postcss ( {
185198 plugins : [
186199 autoprefixer ( )
@@ -220,7 +233,6 @@ function createConfig(options, entry, format, writeMeta) {
220233 jsnext : true ,
221234 browser : options . target !== 'node'
222235 } ) ,
223- es3 ( ) ,
224236 // We should upstream this to rollup
225237 // format==='cjs' && replace({
226238 // [`module.exports = ${rollupName};`]: '',
@@ -269,10 +281,16 @@ function createConfig(options, entry, format, writeMeta) {
269281 } ,
270282
271283 outputOptions : {
284+ exports : exportType ? 'default' : undefined ,
272285 paths : aliases ,
273286 globals,
274287 strict : options . strict === true ,
288+ legacy : true ,
289+ freeze : false ,
275290 sourcemap : true ,
291+ treeshake : {
292+ propertyReadSideEffects : false
293+ } ,
276294 format,
277295 name : options . name || pkg . amdName || safeVariableName ( pkg . name ) ,
278296 file : resolve ( options . cwd , ( format === 'es' && moduleMain ) || ( format === 'umd' && umdMain ) || cjsMain )
0 commit comments