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 439591a
Show file tree
Hide file tree
Showing 2 changed files with 19 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 comments on commit 439591a

Please sign in to comment.