add .babelrc - fixes #351
This commit is contained in:
parent
12ebeed7c6
commit
7bb98352df
@ -1,3 +1,4 @@
|
|||||||
|
var resolveRc = require("../../lib/babel/api/register/resolve-rc");
|
||||||
var readdir = require("fs-readdir-recursive");
|
var readdir = require("fs-readdir-recursive");
|
||||||
var index = require("./index");
|
var index = require("./index");
|
||||||
var babel = require("../../lib/babel/api/node");
|
var babel = require("../../lib/babel/api/node");
|
||||||
@ -41,6 +42,7 @@ exports.transform = function (filename, code, opts) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
exports.compile = function (filename, opts) {
|
exports.compile = function (filename, opts) {
|
||||||
|
resolveRc(filename, opts);
|
||||||
var code = fs.readFileSync(filename, "utf8");
|
var code = fs.readFileSync(filename, "utf8");
|
||||||
return exports.transform(filename, code, opts);
|
return exports.transform(filename, code, opts);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -4,6 +4,7 @@ require("../../polyfill");
|
|||||||
|
|
||||||
var sourceMapSupport = require("source-map-support");
|
var sourceMapSupport = require("source-map-support");
|
||||||
var registerCache = require("./cache");
|
var registerCache = require("./cache");
|
||||||
|
var resolveRc = require("./resolve-rc");
|
||||||
var extend = require("lodash/object/extend");
|
var extend = require("lodash/object/extend");
|
||||||
var babel = require("../node");
|
var babel = require("../node");
|
||||||
var each = require("lodash/collection/each");
|
var each = require("lodash/collection/each");
|
||||||
@ -44,7 +45,10 @@ var mtime = function (filename) {
|
|||||||
var compile = function (filename) {
|
var compile = function (filename) {
|
||||||
var result;
|
var result;
|
||||||
|
|
||||||
var cacheKey = filename + ":" + JSON.stringify(transformOpts);
|
var opts = extend({}, transformOpts);
|
||||||
|
resolveRc(filename, opts);
|
||||||
|
|
||||||
|
var cacheKey = filename + ":" + JSON.stringify(opts);
|
||||||
|
|
||||||
if (cache) {
|
if (cache) {
|
||||||
var cached = cache[cacheKey];
|
var cached = cache[cacheKey];
|
||||||
@ -54,10 +58,10 @@ var compile = function (filename) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!result) {
|
if (!result) {
|
||||||
result = babel.transformFileSync(filename, extend({
|
result = babel.transformFileSync(filename, extend(opts, {
|
||||||
sourceMap: true,
|
sourceMap: true,
|
||||||
ast: false
|
ast: false
|
||||||
}, transformOpts));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cache) {
|
if (cache) {
|
||||||
|
|||||||
45
lib/babel/api/register/resolve-rc.js
Normal file
45
lib/babel/api/register/resolve-rc.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
"use strict";
|
||||||
|
|
||||||
|
var merge = require("lodash/object/merge");
|
||||||
|
var path = require("path");
|
||||||
|
var fs = require("fs");
|
||||||
|
|
||||||
|
var cache = {};
|
||||||
|
|
||||||
|
function exists(filename) {
|
||||||
|
var cached = cache[filename];
|
||||||
|
if (cached != null) return cached;
|
||||||
|
return cache[filename] = fs.existsSync(filename);;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = function (loc, opts) {
|
||||||
|
var rel = ".babelrc";
|
||||||
|
opts = opts || {};
|
||||||
|
|
||||||
|
function find(start, rel) {
|
||||||
|
var file = path.join(start, rel);
|
||||||
|
|
||||||
|
if (exists(file)) {
|
||||||
|
var file = fs.readFileSync(file, "utf8");
|
||||||
|
var json;
|
||||||
|
|
||||||
|
try {
|
||||||
|
json = JSON.parse(file);
|
||||||
|
} catch (err) {
|
||||||
|
err.filename = file + ": " + err.filename;
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
|
||||||
|
opts = merge(json, opts);
|
||||||
|
}
|
||||||
|
|
||||||
|
var up = path.dirname(start);
|
||||||
|
if (up !== start) { // root
|
||||||
|
find(up, rel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
find(loc, rel);
|
||||||
|
|
||||||
|
return opts;
|
||||||
|
};
|
||||||
Loading…
x
Reference in New Issue
Block a user