Ensure preset-env doesn't clobber browserslist defaults (#8391)
This commit is contained in:
parent
8ee24fdfc0
commit
5fdcd29ef9
@ -15,6 +15,8 @@ import browserModulesData from "../data/built-in-modules.json";
|
|||||||
import { TargetNames } from "./options";
|
import { TargetNames } from "./options";
|
||||||
import type { Targets } from "./types";
|
import type { Targets } from "./types";
|
||||||
|
|
||||||
|
const browserslistDefaults = browserslist.defaults;
|
||||||
|
|
||||||
const validateTargetNames = (validTargets, targets) => {
|
const validateTargetNames = (validTargets, targets) => {
|
||||||
for (const target in targets) {
|
for (const target in targets) {
|
||||||
if (!TargetNames[target]) {
|
if (!TargetNames[target]) {
|
||||||
@ -178,6 +180,9 @@ const getTargets = (targets: Object = {}, options: Object = {}): Targets => {
|
|||||||
const browsers = browserslist(browsersquery, { path: options.configPath });
|
const browsers = browserslist(browsersquery, { path: options.configPath });
|
||||||
const queryBrowsers = getLowestVersions(browsers);
|
const queryBrowsers = getLowestVersions(browsers);
|
||||||
targets = mergeBrowsers(queryBrowsers, targets);
|
targets = mergeBrowsers(queryBrowsers, targets);
|
||||||
|
|
||||||
|
// Reset browserslist defaults
|
||||||
|
browserslist.defaults = browserslistDefaults;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse remaining targets
|
// Parse remaining targets
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
import browserslist from "browserslist";
|
||||||
import getTargets from "../lib/targets-parser";
|
import getTargets from "../lib/targets-parser";
|
||||||
|
|
||||||
describe("getTargets", () => {
|
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", () => {
|
describe("validation", () => {
|
||||||
it("throws on invalid target name", () => {
|
it("throws on invalid target name", () => {
|
||||||
const invalidTargetName = () => {
|
const invalidTargetName = () => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user