diff --git a/packages/babel-preset-env/.gitignore b/packages/babel-preset-env/.gitignore index b8733fbb98..8f638248fa 100644 --- a/packages/babel-preset-env/.gitignore +++ b/packages/babel-preset-env/.gitignore @@ -8,3 +8,4 @@ test/tmp .nyc_output tmp babel-preset-env-*.tgz +/build diff --git a/packages/babel-preset-env/.npmignore b/packages/babel-preset-env/.npmignore index 40425577de..e843712b4e 100644 --- a/packages/babel-preset-env/.npmignore +++ b/packages/babel-preset-env/.npmignore @@ -15,3 +15,4 @@ babel-preset-env-*.tgz flow-typed .github .idea +/build diff --git a/packages/babel-preset-env/CONTRIBUTING.md b/packages/babel-preset-env/CONTRIBUTING.md index de861d996e..cd91f35148 100644 --- a/packages/babel-preset-env/CONTRIBUTING.md +++ b/packages/babel-preset-env/CONTRIBUTING.md @@ -63,9 +63,9 @@ If you want to mark a new proposal as shipped, add it to [this list](https://git ### Update [`plugins.json`](https://github.com/babel/babel/blob/master/packages/babel-preset-env/data/plugins.json) -Until `compat-table` is a standalone npm module for data we are using the git url +Until `compat-table` is a standalone npm module for data we are using the git commit in `scripts/download-compat-table.sh` -`"compat-table": "kangax/compat-table#[latest-commit-hash]"`, +`COMPAT_TABLE_COMMIT=[latest-commit-hash]`, So we update and then run `npm run build-data`. If there are no changes, then `plugins.json` will be the same. diff --git a/packages/babel-preset-env/package.json b/packages/babel-preset-env/package.json index 58e1caaf0c..15a72e4cb3 100644 --- a/packages/babel-preset-env/package.json +++ b/packages/babel-preset-env/package.json @@ -11,7 +11,7 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-preset-env", "main": "lib/index.js", "scripts": { - "build-data": "node ./scripts/build-data.js; node ./scripts/build-modules-support.js" + "build-data": "./scripts/download-compat-table.sh; node ./scripts/build-data.js; node ./scripts/build-modules-support.js" }, "dependencies": { "@babel/helper-module-imports": "^7.7.4", @@ -76,7 +76,6 @@ "@babel/helper-plugin-test-runner": "^7.7.4", "@babel/plugin-syntax-dynamic-import": "^7.2.0", "caniuse-db": "1.0.30000969", - "compat-table": "kangax/compat-table#4195aca631ad904cb0efeb62a9c2d8c8511706f8", "electron-to-chromium": "1.3.113" } } diff --git a/packages/babel-preset-env/scripts/build-data.js b/packages/babel-preset-env/scripts/build-data.js index d4502ddaa9..e8bb4b1db5 100644 --- a/packages/babel-preset-env/scripts/build-data.js +++ b/packages/babel-preset-env/scripts/build-data.js @@ -46,7 +46,7 @@ const renameTests = (tests, getName, category) => // environments (node4 and chrome45), as well as familial relationships (edge // and ie11) can be handled properly. -const envs = require("compat-table/environments"); +const envs = require("../build/compat-table/environments"); const byTestSuite = suite => browser => { return Array.isArray(browser.test_suites) @@ -56,7 +56,7 @@ const byTestSuite = suite => browser => { const compatSources = ["es5", "es6", "es2016plus", "esnext"].reduce( (result, source) => { - const data = require(`compat-table/data-${source}`); + const data = require(`../build/compat-table/data-${source}`); data.browsers = pickBy(envs, byTestSuite(source)); result.push(data); return result; diff --git a/packages/babel-preset-env/scripts/download-compat-table.sh b/packages/babel-preset-env/scripts/download-compat-table.sh new file mode 100755 index 0000000000..fd67e9d6d3 --- /dev/null +++ b/packages/babel-preset-env/scripts/download-compat-table.sh @@ -0,0 +1,8 @@ +#!/bin/bash +set -e + +COMPAT_TABLE_COMMIT=4195aca631ad904cb0efeb62a9c2d8c8511706f8 +rm -rf build/compat-table +mkdir -p build +git clone --branch=gh-pages --single-branch --shallow-since=2019-11-14 https://github.com/kangax/compat-table.git build/compat-table +cd build/compat-table && git checkout -qf $COMPAT_TABLE_COMMIT