Skip to content

Commit

Permalink
Completely omit files that do not have any included statements
Browse files Browse the repository at this point in the history
  • Loading branch information
lukastaegert committed Jun 14, 2019
1 parent 74a3be1 commit 9f3e5a3
Show file tree
Hide file tree
Showing 13 changed files with 49 additions and 67 deletions.
40 changes: 23 additions & 17 deletions src/Chunk.ts
Expand Up @@ -528,30 +528,36 @@ export default class Chunk {

for (let i = 0; i < this.orderedModules.length; i++) {
const module = this.orderedModules[i];
const source = module.render(renderOptions);
source.trim();
if (options.compact && source.lastLine().indexOf('//') !== -1) source.append('\n');
this.renderedModuleSources.push(source);
let renderedLength;
if (module.isIncluded()) {
const source = module.render(renderOptions);
source.trim();
if (options.compact && source.lastLine().indexOf('//') !== -1) source.append('\n');
this.renderedModuleSources.push(source);

const namespace = module.getOrCreateNamespace();
if (namespace.included) {
magicString.addSource(source);
this.usedModules.push(module);

if (namespace.included && !this.graph.preserveModules) {
const rendered = namespace.renderBlock(renderOptions);
if (namespace.renderFirst()) hoistedSource += n + rendered;
else magicString.addSource(new MagicString(rendered));
}
}
renderedLength = source.length();
} else {
renderedLength = 0;
}

const { renderedExports, removedExports } = module.getRenderedExports();
renderedModules[module.id] = {
originalLength: module.originalCode.length,
removedExports,
renderedExports,
renderedLength: source.length()
renderedLength
};

const namespace = module.getOrCreateNamespace();
if (namespace.included || !source.isEmpty()) {
magicString.addSource(source);
this.usedModules.push(module);

if (namespace.included && !this.graph.preserveModules) {
const rendered = namespace.renderBlock(renderOptions);
if (namespace.renderFirst()) hoistedSource += n + rendered;
else magicString.addSource(new MagicString(rendered));
}
}
}

if (hoistedSource) magicString.prepend(hoistedSource + n + n);
Expand Down
3 changes: 3 additions & 0 deletions test/form/samples/remove-treeshaken-banners/_config.js
@@ -0,0 +1,3 @@
module.exports = {
description: 'Also remove banner comments when completely tree-shaking files'
};
4 changes: 4 additions & 0 deletions test/form/samples/remove-treeshaken-banners/_expected.js
@@ -0,0 +1,4 @@
// dep included banner: included
console.log('dep included');

// dep included footer: included
6 changes: 6 additions & 0 deletions test/form/samples/remove-treeshaken-banners/dep-included.js
@@ -0,0 +1,6 @@
// dep included banner: included

const removed = 1;
console.log('dep included');

// dep included footer: included
5 changes: 5 additions & 0 deletions test/form/samples/remove-treeshaken-banners/dep-removed.js
@@ -0,0 +1,5 @@
// dep removed banner: removed

const removed = 1;

// dep removed footer: removed
6 changes: 6 additions & 0 deletions test/form/samples/remove-treeshaken-banners/main.js
@@ -0,0 +1,6 @@
// main banner: removed

import './dep-removed';
import './dep-included';

// main footer: removed
8 changes: 0 additions & 8 deletions test/form/samples/tree-shake-default-exports/_expected/amd.js
@@ -1,13 +1,5 @@
define(function () { 'use strict';

/* header 1 */

/* footer 1 */

/* header 2 */

/* footer 2 */

/* header 3 */

/* leading retained */
Expand Down
8 changes: 0 additions & 8 deletions test/form/samples/tree-shake-default-exports/_expected/cjs.js
@@ -1,13 +1,5 @@
'use strict';

/* header 1 */

/* footer 1 */

/* header 2 */

/* footer 2 */

/* header 3 */

/* leading retained */
Expand Down
8 changes: 0 additions & 8 deletions test/form/samples/tree-shake-default-exports/_expected/es.js
@@ -1,11 +1,3 @@
/* header 1 */

/* footer 1 */

/* header 2 */

/* footer 2 */

/* header 3 */

/* leading retained */
Expand Down
@@ -1,14 +1,6 @@
(function () {
'use strict';

/* header 1 */

/* footer 1 */

/* header 2 */

/* footer 2 */

/* header 3 */

/* leading retained */
Expand Down
Expand Up @@ -3,14 +3,6 @@ System.register([], function () {
return {
execute: function () {

/* header 1 */

/* footer 1 */

/* header 2 */

/* footer 2 */

/* header 3 */

/* leading retained */
Expand Down
8 changes: 0 additions & 8 deletions test/form/samples/tree-shake-default-exports/_expected/umd.js
Expand Up @@ -3,14 +3,6 @@
factory();
}(function () { 'use strict';

/* header 1 */

/* footer 1 */

/* header 2 */

/* footer 2 */

/* header 3 */

/* leading retained */
Expand Down
4 changes: 2 additions & 2 deletions test/misc/bundle-information.js
Expand Up @@ -423,7 +423,7 @@ console.log(other);Promise.all([import('./dynamic1'), import('./dynamic2')]).the
input: ['input'],
plugins: [
loader({
input: 'export { renderedFn, renderedClass, renderedConst } from "code"',
input: '/* removed header */ export { renderedFn, renderedClass, renderedConst } from "code"',
code:
'export function renderedFn() {}\nexport function removedFn() {}\n' +
'export class renderedClass {}\nexport class removedClass {}\n' +
Expand Down Expand Up @@ -457,7 +457,7 @@ console.log(other);Promise.all([import('./dynamic1'), import('./dynamic2')]).the
renderedLength: 72
},
input: {
originalLength: 63,
originalLength: 84,
removedExports: [],
renderedExports: [],
renderedLength: 0
Expand Down

0 comments on commit 9f3e5a3

Please sign in to comment.