Ensure preset-env doesn't clobber browserslist defaults (#8391)

This commit is contained in:
Brian Ng 2018-07-26 14:22:26 -05:00 committed by Henry Zhu
parent 8ee24fdfc0
commit 5fdcd29ef9
2 changed files with 16 additions and 0 deletions

View File

@ -15,6 +15,8 @@ import browserModulesData from "../data/built-in-modules.json";
import { TargetNames } from "./options";
import type { Targets } from "./types";
const browserslistDefaults = browserslist.defaults;
const validateTargetNames = (validTargets, targets) => {
for (const target in targets) {
if (!TargetNames[target]) {
@ -178,6 +180,9 @@ const getTargets = (targets: Object = {}, options: Object = {}): Targets => {
const browsers = browserslist(browsersquery, { path: options.configPath });
const queryBrowsers = getLowestVersions(browsers);
targets = mergeBrowsers(queryBrowsers, targets);
// Reset browserslist defaults
browserslist.defaults = browserslistDefaults;
}
// Parse remaining targets

View File

@ -1,3 +1,4 @@
import browserslist from "browserslist";
import getTargets from "../lib/targets-parser";
describe("getTargets", () => {
@ -19,6 +20,16 @@ describe("getTargets", () => {
});
});
it("does not clobber browserslists defaults", () => {
const browserslistDefaults = browserslist.defaults;
getTargets({
browsers: "chrome 56, ie 11, firefox 51, safari 9",
});
expect(browserslist.defaults).toEqual(browserslistDefaults);
});
describe("validation", () => {
it("throws on invalid target name", () => {
const invalidTargetName = () => {