allowing specifying of babelrc config via package.json - closes #1818

This commit is contained in:
Sebastian McKenzie 2015-07-11 16:21:08 +01:00
parent fedf894904
commit be44e608e7

View File

@ -11,7 +11,8 @@ import fs from "fs";
var existsCache = {};
var jsonCache = {};
const CONFIG_FILENAME = ".babelrc";
const BABELRC_FILENAME = ".babelrc";
const PACKAGE_FILENAME = "package.json";
function exists(filename) {
var cached = existsCache[filename];
@ -49,7 +50,7 @@ export default class OptionManager {
* Description
*/
addConfig(loc) {
addConfig(loc, key?) {
if (this.resolvedConfigs.indexOf(loc) >= 0) return;
var content = fs.readFileSync(loc, "utf8");
@ -57,6 +58,7 @@ export default class OptionManager {
try {
opts = jsonCache[content] = jsonCache[content] || JSON.parse(stripJsonComments(content));
if (key) opts = opts[key];
} catch (err) {
err.message = `${loc}: ${err.message}`;
throw err;
@ -103,8 +105,11 @@ export default class OptionManager {
while (loc !== (loc = path.dirname(loc))) {
if (this.options.breakConfig) return;
var configLoc = path.join(loc, CONFIG_FILENAME);
var configLoc = path.join(loc, BABELRC_FILENAME);
if (exists(configLoc)) this.addConfig(configLoc);
var pkgLoc = path.join(loc, PACKAGE_FILENAME);
if (exists(pkgLoc)) this.addConfig(pkgLoc, "babel");
}
}