Browse Source

more fixes

contingency-plan
Rich Harris 10 years ago
parent
commit
6fa907e9d7
  1. 12
      src/Bundle.js
  2. 5
      src/Module.js
  3. 2
      src/finalisers/cjs.js

12
src/Bundle.js

@ -65,6 +65,16 @@ export default class Bundle {
return this.fetchModule( this.entryPath, null ) return this.fetchModule( this.entryPath, null )
.then( entryModule => { .then( entryModule => {
this.entryModule = entryModule; this.entryModule = entryModule;
if ( entryModule.exports.default ) {
let defaultExportName = makeLegalIdentifier( basename( this.entryPath ).slice( 0, -extname( this.entryPath ).length ) );
while ( entryModule.ast._scope.contains( defaultExportName ) ) {
defaultExportName = `_${defaultExportName}`;
}
entryModule.suggestName( 'default', defaultExportName );
}
return entryModule.expandAllStatements( true ); return entryModule.expandAllStatements( true );
}) })
.then( statements => { .then( statements => {
@ -174,7 +184,7 @@ export default class Bundle {
const namespaceBlock = this.internalNamespaceModules.map( module => { const namespaceBlock = this.internalNamespaceModules.map( module => {
const exportKeys = keys( module.exports ); const exportKeys = keys( module.exports );
return `var ${module.suggestedNames['*']} = {\n` + return `var ${module.getCanonicalName('*')} = {\n` +
exportKeys.map( key => `${indentString}get ${key} () { return ${module.getCanonicalName(key)}; }` ).join( ',\n' ) + exportKeys.map( key => `${indentString}get ${key} () { return ${module.getCanonicalName(key)}; }` ).join( ',\n' ) +
`\n};\n\n`; `\n};\n\n`;
}).join( '' ); }).join( '' );

5
src/Module.js

@ -219,7 +219,10 @@ export default class Module {
importDeclaration.module = module; importDeclaration.module = module;
if ( importDeclaration.name === 'default' ) { if ( importDeclaration.name === 'default' ) {
module.suggestName( 'default', importDeclaration.localName ); // TODO this seems ropey
const localName = importDeclaration.localName;
const suggestion = has( this.suggestedNames, localName ) ? this.suggestedNames[ localName ] : localName;
module.suggestName( 'default', suggestion );
} }
if ( module.isExternal ) { if ( module.isExternal ) {

2
src/finalisers/cjs.js

@ -26,7 +26,7 @@ export default function cjs ( bundle, magicString, exportMode ) {
let exportBlock; let exportBlock;
if ( exportMode === 'default' && bundle.entryModule.exports.default ) { if ( exportMode === 'default' && bundle.entryModule.exports.default ) {
exportBlock = `module.exports = ${bundle.entryModule.suggestedNames.default};`; exportBlock = `module.exports = ${bundle.entryModule.getCanonicalName('default')};`;
} else if ( exportMode === 'named' ) { } else if ( exportMode === 'named' ) {
exportBlock = keys( bundle.entryModule.exports ) exportBlock = keys( bundle.entryModule.exports )
.map( key => { .map( key => {

Loading…
Cancel
Save