Skip to content

Commit

Permalink
Add support for entryFileNames pattern used in combination with prese…
Browse files Browse the repository at this point in the history
…rveModules option
  • Loading branch information
Andarist committed Sep 1, 2019
1 parent 1429d57 commit 5d94815
Show file tree
Hide file tree
Showing 23 changed files with 157 additions and 9 deletions.
26 changes: 18 additions & 8 deletions src/Chunk.ts
Expand Up @@ -277,17 +277,27 @@ export default class Chunk {

generateIdPreserveModules(
preserveModulesRelativeDir: string,
options: OutputOptions,
existingNames: Record<string, any>
): string {
const sanitizedId = sanitizeFileName(this.orderedModules[0].id);
return makeUnique(
normalize(
isAbsolute(this.orderedModules[0].id)
? relative(preserveModulesRelativeDir, sanitizedId)
: '_virtual/' + basename(sanitizedId)
),
existingNames
);

let path: string;
if (isAbsolute(this.orderedModules[0].id)) {
const name = renderNamePattern(
options.entryFileNames || '[name].js',
'output.entryFileNames',
{
format: () => (options.format === 'es' ? 'esm' : (options.format as string)),
name: () => this.getChunkName()
}
);

path = relative(preserveModulesRelativeDir, `${dirname(sanitizedId)}/${name}`);
} else {
path = `_virtual/${basename(sanitizedId)}`;
}
return makeUnique(normalize(path), existingNames);
}

generateInternalExports(options: OutputOptions) {
Expand Down
2 changes: 1 addition & 1 deletion src/utils/assignChunkIds.ts
Expand Up @@ -27,7 +27,7 @@ export function assignChunkIds(
if (outputOptions.file) {
chunk.id = basename(outputOptions.file);
} else if (inputOptions.preserveModules) {
chunk.id = chunk.generateIdPreserveModules(inputBase, bundle);
chunk.id = chunk.generateIdPreserveModules(inputBase, outputOptions, bundle);
} else {
chunk.id = chunk.generateId(addons, outputOptions, bundle, true);
}
Expand Down
@@ -0,0 +1,10 @@
module.exports = {
description: 'entryFileNames pattern supported in combination with preserveModules',
options: {
input: 'src/main.ts',
output: {
entryFileNames: 'entry-[name]-[format].js'
},
preserveModules: true
}
};
@@ -0,0 +1,7 @@
define(['exports'], function (exports) { 'use strict';

var foo = 42;

exports.default = foo;

});
@@ -0,0 +1,11 @@
define(['exports', './entry-foo-amd', './nested/entry-bar-amd', './nested/entry-baz-amd'], function (exports, foo, bar, baz) { 'use strict';



exports.foo = foo.default;
exports.bar = bar.default;
exports.baz = baz.default;

Object.defineProperty(exports, '__esModule', { value: true });

});
@@ -0,0 +1,7 @@
define(['exports'], function (exports) { 'use strict';

var bar = 'banana';

exports.default = bar;

});
@@ -0,0 +1,7 @@
define(['exports'], function (exports) { 'use strict';

var baz = 'whatever';

exports.default = baz;

});
@@ -0,0 +1,5 @@
'use strict';

var foo = 42;

exports.default = foo;
@@ -0,0 +1,13 @@
'use strict';

Object.defineProperty(exports, '__esModule', { value: true });

var foo = require('./entry-foo-cjs.js');
var bar = require('./nested/entry-bar-cjs.js');
var baz = require('./nested/entry-baz-cjs.js');



exports.foo = foo.default;
exports.bar = bar.default;
exports.baz = baz.default;
@@ -0,0 +1,5 @@
'use strict';

var bar = 'banana';

exports.default = bar;
@@ -0,0 +1,5 @@
'use strict';

var baz = 'whatever';

exports.default = baz;
@@ -0,0 +1,3 @@
var foo = 42;

export default foo;
@@ -0,0 +1,3 @@
export { default as foo } from './entry-foo-esm.js';
export { default as bar } from './nested/entry-bar-esm.js';
export { default as baz } from './nested/entry-baz-esm.js';
@@ -0,0 +1,3 @@
var bar = 'banana';

export default bar;
@@ -0,0 +1,3 @@
var baz = 'whatever';

export default baz;
@@ -0,0 +1,10 @@
System.register([], function (exports) {
'use strict';
return {
execute: function () {

var foo = exports('default', 42);

}
};
});
@@ -0,0 +1,17 @@
System.register(['./entry-foo-system.js', './nested/entry-bar-system.js', './nested/entry-baz-system.js'], function (exports) {
'use strict';
return {
setters: [function (module) {
exports('foo', module.default);
}, function (module) {
exports('bar', module.default);
}, function (module) {
exports('baz', module.default);
}],
execute: function () {



}
};
});
@@ -0,0 +1,10 @@
System.register([], function (exports) {
'use strict';
return {
execute: function () {

var bar = exports('default', 'banana');

}
};
});
@@ -0,0 +1,10 @@
System.register([], function (exports) {
'use strict';
return {
execute: function () {

var baz = exports('default', 'whatever');

}
};
});
@@ -0,0 +1 @@
export default 42;
@@ -0,0 +1,6 @@
// @ts-ignore
export { default as foo } from './foo.ts';
// @ts-ignore
export { default as bar } from './nested/bar.ts';
// @ts-ignore
export { default as baz } from './nested/baz.ts';
@@ -0,0 +1 @@
export default 'banana';
@@ -0,0 +1 @@
export default 'whatever';

0 comments on commit 5d94815

Please sign in to comment.