diff --git a/lib/6to5/util.js b/lib/6to5/util.js index 2c67d6169e..2177b3937a 100644 --- a/lib/6to5/util.js +++ b/lib/6to5/util.js @@ -132,7 +132,10 @@ exports.buildDefineProperties = function (mutatorMap, keyNode) { }; exports.template = function (name, nodes, keepExpression) { - var template = _.cloneDeep(exports.templates[name]); + var template = exports.templates[name]; + if (!template) throw new ReferenceError("unknown template " + name); + + template = _.cloneDeep(template); if (!_.isEmpty(nodes)) { traverse.replace(template, function (node) { @@ -197,6 +200,9 @@ if (fs.existsSync(templatesCacheLoc)) { exports.templates = {}; var templatesLoc = __dirname + "/templates"; + if (!fs.existsSync(templatesLoc)) { + throw new Error("no templates directory - this is most likely the result of a broken `npm publish`. Please report to https://github.com/sebmck/6to5/issues"); + } _.each(fs.readdirSync(templatesLoc), function (name) { var key = path.basename(name, path.extname(name));