diff --git a/lib/graph/treeshake.js b/lib/graph/treeshake.js index 4c3949bc..0e17efca 100644 --- a/lib/graph/treeshake.js +++ b/lib/graph/treeshake.js @@ -97,6 +97,7 @@ function loadFromGraph(getNode, data) { for(let depName of dependants) { let localNode = getNode(depName); let specifiers = localNode.load.metadata.importSpecifiers || {}; + let importNames = localNode.load.metadata.importNames || {}; for(let [impSource,] of entries(specifiers)) { let depName = moduleNameFromSpecifier(localNode, impSource); @@ -104,7 +105,7 @@ function loadFromGraph(getNode, data) { continue; } - let imported = localNode.load.metadata.importNames[impSource] || []; + let imported = importNames[impSource] || []; imported.forEach(imported => { needToExport.add(imported); }); diff --git a/lib/stream/treeshake.js b/lib/stream/treeshake.js index c5a44a25..3be23ff7 100644 --- a/lib/stream/treeshake.js +++ b/lib/stream/treeshake.js @@ -1,6 +1,7 @@ var through = require("through2"); var prune = require("../graph/prune"); var treeshake = require("../graph/treeshake"); +var winston = require("winston"); module.exports = function() { return through.obj(function(data, enc, next) { @@ -17,6 +18,7 @@ module.exports = function() { return; } + winston.info("Tree shaking..."); treeshake(data, options) .then(function(){ prune(data); diff --git a/test/tree_shaking_test.js b/test/tree_shaking_test.js index 658929bc..f07495c0 100644 --- a/test/tree_shaking_test.js +++ b/test/tree_shaking_test.js @@ -274,6 +274,7 @@ describe("Tree-shaking", function(){ }); describe("import { dep } from 'cjs'", function() { + var app; before(function(done){ this.timeout(20000); var base = path.join(__dirname, "treeshake", "cjs"); diff --git a/test/treeshake/cjs/file.txt b/test/treeshake/cjs/file.txt new file mode 100644 index 00000000..b5981164 --- /dev/null +++ b/test/treeshake/cjs/file.txt @@ -0,0 +1 @@ +THIS IS A TEXT FILE HA HA HA. diff --git a/test/treeshake/cjs/index.js b/test/treeshake/cjs/index.js index 1616d0ea..26ded484 100644 --- a/test/treeshake/cjs/index.js +++ b/test/treeshake/cjs/index.js @@ -1,4 +1,5 @@ import { assign } from './dep'; import './other'; +import './file.txt!~/text'; window.APP = { assign }; diff --git a/test/treeshake/cjs/text.js b/test/treeshake/cjs/text.js new file mode 100644 index 00000000..f55f5215 --- /dev/null +++ b/test/treeshake/cjs/text.js @@ -0,0 +1,10 @@ + +exports.translate = function(load) { + load.metadata.importSpecifiers = { + "./dep": { + start: { line: 1, column: 28 }, + end: { line: 1, column: 30 }, + } + }; + return "require('./dep'); module.exports = function(){};"; +};