Skip to content

Commit

Permalink
fix build config to work the same when running on windows
Browse files Browse the repository at this point in the history
  • Loading branch information
zxbodya committed Jun 7, 2020
1 parent 426acf3 commit f885813
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 14 deletions.
17 changes: 12 additions & 5 deletions babel.config.js
@@ -1,5 +1,10 @@
"use strict";

const path = require("path");

function normalize(src) {
return src.replace(/\//, path.sep);
}
module.exports = function(api) {
const env = api.env();

Expand Down Expand Up @@ -93,7 +98,9 @@ module.exports = function(api) {
"packages/*/test/fixtures",
ignoreLib ? "packages/*/lib" : null,
"packages/babel-standalone/babel.js",
].filter(Boolean),
]
.filter(Boolean)
.map(normalize),
presets: [["@babel/env", envOpts]],
plugins: [
// TODO: Use @babel/preset-flow when
Expand All @@ -115,14 +122,14 @@ module.exports = function(api) {
test: [
"packages/babel-parser",
"packages/babel-helper-validator-identifier",
],
].map(normalize),
plugins: [
"babel-plugin-transform-charcodes",
["@babel/transform-for-of", { assumeArray: true }],
],
},
{
test: ["./packages/babel-cli", "./packages/babel-core"],
test: ["./packages/babel-cli", "./packages/babel-core"].map(normalize),
plugins: [
// Explicitly use the lazy version of CommonJS modules.
convertESM
Expand All @@ -131,11 +138,11 @@ module.exports = function(api) {
].filter(Boolean),
},
{
test: "./packages/babel-polyfill",
test: normalize("./packages/babel-polyfill"),
presets: [["@babel/env", envOptsNoTargets]],
},
{
test: unambiguousSources,
test: unambiguousSources.map(normalize),
sourceType: "unambiguous",
},
includeRegeneratorRuntime && {
Expand Down
27 changes: 18 additions & 9 deletions scripts/rollup-plugin-babel-source.js
Expand Up @@ -2,11 +2,16 @@ const path = require("path");
const fs = require("fs");
const dirname = path.join(__dirname, "..");

const BABEL_SRC_REGEXP =
path.sep === "/"
? /packages\/(babel-[^/]+)\/src\//
: /packages\\(babel-[^\\]+)\\src\\/;

module.exports = function() {
return {
name: "babel-source",
load(id) {
const matches = id.match(/packages\/(babel-[^/]+)\/src\//);
const matches = id.match(BABEL_SRC_REGEXP);
if (matches) {
// check if browser field exists for this file and replace
const packageFolder = path.join(dirname, "packages", matches[1]);
Expand All @@ -16,18 +21,20 @@ module.exports = function() {
packageJson["browser"] &&
typeof packageJson["browser"] === "object"
) {
for (let nodeFile in packageJson["browser"]) {
for (const nodeFile in packageJson["browser"]) {
const browserFile = packageJson["browser"][nodeFile].replace(
/^(\.\/)?lib\//,
"src/"
);
nodeFile = nodeFile.replace(/^(\.\/)?lib\//, "src/");
if (id.endsWith(nodeFile)) {
const nodeFileSrc = path.normalize(
nodeFile.replace(/^(\.\/)?lib\//, "src/")
);
if (id.endsWith(nodeFileSrc)) {
if (browserFile === false) {
return "";
}
return fs.readFileSync(
path.join(packageFolder, browserFile),
path.join(packageFolder, path.normalize(browserFile)),
"UTF-8"
);
}
Expand Down Expand Up @@ -74,10 +81,12 @@ module.exports = function() {
? packageJson["browser"]
: packageJson["main"];

return path.join(
packageFolder,
// replace lib with src in the package.json entry
filename.replace(/^(\.\/)?lib\//, "src/")
return path.normalize(
path.join(
packageFolder,
// replace lib with src in the package.json entry
filename.replace(/^(\.\/)?lib\//, "src/")
)
);
},
};
Expand Down

0 comments on commit f885813

Please sign in to comment.