Add windows to travis (#10249)
* Add windows to travis * Update * Do not use sh file on windows * Fix whitespace * Unify command * ./ doesn't work on windows * Remove all ./ usages * Run windows test before others * fix: normalize filename when generating sources sources should be URL. * fix: replace normalized path to cwd * chore: add nodePlatform task options * fix: normalize preset-env filename output * chore: replace normalized path to CWD on win32 platform * limit transform-react-source to run on linux and darwin * test: escapeRegExp on testcases * test: add test for babel --filename on windows * test: double babel-node/cli test timeout * chore: workaround windows build does not stop * chore: remove redundant condition * refactor: rename `nodePlatform` to `os`
This commit is contained in:
parent
66062c2a8c
commit
b459f6a0a4
18
.travis.yml
18
.travis.yml
@ -3,12 +3,15 @@ git:
|
||||
language: node_js
|
||||
cache:
|
||||
yarn: true
|
||||
|
||||
os: linux
|
||||
|
||||
node_js:
|
||||
# We test the latest version on circleci
|
||||
- '11'
|
||||
- '10'
|
||||
- '8'
|
||||
- '6'
|
||||
- "11"
|
||||
- "10"
|
||||
- "8"
|
||||
- "6"
|
||||
|
||||
env:
|
||||
global:
|
||||
@ -24,6 +27,7 @@ install:
|
||||
- if [ "$JOB" = "lint" ]; then make bootstrap; fi
|
||||
|
||||
before_script:
|
||||
- if [ "$TRAVIS_OS_NAME" = "windows" ]; then choco install make; fi
|
||||
- if [ "$JOB" = "babel-parser-flow-tests" ]; then make bootstrap-flow; fi
|
||||
- if [ "$JOB" = "babel-parser-test262-tests" ]; then make bootstrap-test262; fi
|
||||
|
||||
@ -36,6 +40,12 @@ script:
|
||||
matrix:
|
||||
fast_finish: true
|
||||
include:
|
||||
- os: windows
|
||||
node_js: "node"
|
||||
env:
|
||||
- JOB=test
|
||||
# https://travis-ci.community/t/build-doesnt-finish-after-completing-tests/288/9
|
||||
- YARN_GPG=no
|
||||
- node_js: "node"
|
||||
env: JOB=lint
|
||||
- node_js: "node"
|
||||
|
||||
67
Makefile
67
Makefile
@ -10,30 +10,30 @@ SOURCES = packages codemods
|
||||
.PHONY: build build-dist watch lint fix clean test-clean test-only test test-ci publish bootstrap
|
||||
|
||||
build: clean clean-lib
|
||||
./node_modules/.bin/gulp build
|
||||
node ./packages/babel-standalone/scripts/generate.js
|
||||
node ./packages/babel-types/scripts/generateTypeHelpers.js
|
||||
yarn gulp build
|
||||
node packages/babel-standalone/scripts/generate.js
|
||||
node packages/babel-types/scripts/generateTypeHelpers.js
|
||||
# call build again as the generated files might need to be compiled again.
|
||||
./node_modules/.bin/gulp build
|
||||
yarn gulp build
|
||||
# generate flow and typescript typings
|
||||
node packages/babel-types/scripts/generators/flow.js > ./packages/babel-types/lib/index.js.flow
|
||||
node packages/babel-types/scripts/generators/typescript.js > ./packages/babel-types/lib/index.d.ts
|
||||
node packages/babel-types/scripts/generators/flow.js > packages/babel-types/lib/index.js.flow
|
||||
node packages/babel-types/scripts/generators/typescript.js > packages/babel-types/lib/index.d.ts
|
||||
ifneq ("$(BABEL_COVERAGE)", "true")
|
||||
make build-standalone
|
||||
make build-preset-env-standalone
|
||||
endif
|
||||
|
||||
build-standalone:
|
||||
./node_modules/.bin/gulp build-babel-standalone
|
||||
yarn gulp build-babel-standalone
|
||||
|
||||
build-preset-env-standalone:
|
||||
./node_modules/.bin/gulp build-babel-preset-env-standalone
|
||||
yarn gulp build-babel-preset-env-standalone
|
||||
|
||||
prepublish-build-standalone:
|
||||
BABEL_ENV=production IS_PUBLISH=true ./node_modules/.bin/gulp build-babel-standalone
|
||||
BABEL_ENV=production IS_PUBLISH=true yarn gulp build-babel-standalone
|
||||
|
||||
prepublish-build-preset-env-standalone:
|
||||
BABEL_ENV=production IS_PUBLISH=true ./node_modules/.bin/gulp build-babel-preset-env-standalone
|
||||
BABEL_ENV=production IS_PUBLISH=true yarn gulp build-babel-preset-env-standalone
|
||||
|
||||
build-dist: build
|
||||
cd packages/babel-polyfill; \
|
||||
@ -45,28 +45,28 @@ watch: clean clean-lib
|
||||
|
||||
# Ensure that build artifacts for types are created during local
|
||||
# development too.
|
||||
BABEL_ENV=development ./node_modules/.bin/gulp build-no-bundle
|
||||
node ./packages/babel-types/scripts/generateTypeHelpers.js
|
||||
node packages/babel-types/scripts/generators/flow.js > ./packages/babel-types/lib/index.js.flow
|
||||
node packages/babel-types/scripts/generators/typescript.js > ./packages/babel-types/lib/index.d.ts
|
||||
BABEL_ENV=development ./node_modules/.bin/gulp watch
|
||||
BABEL_ENV=development yarn gulp build-no-bundle
|
||||
node packages/babel-types/scripts/generateTypeHelpers.js
|
||||
node packages/babel-types/scripts/generators/flow.js > packages/babel-types/lib/index.js.flow
|
||||
node packages/babel-types/scripts/generators/typescript.js > packages/babel-types/lib/index.d.ts
|
||||
BABEL_ENV=development yarn gulp watch
|
||||
|
||||
flow:
|
||||
./node_modules/.bin/flow check --strip-root
|
||||
yarn flow check --strip-root
|
||||
|
||||
lint: lint-js lint-ts
|
||||
|
||||
lint-js:
|
||||
./node_modules/.bin/eslint scripts $(SOURCES) '*.js' --format=codeframe
|
||||
yarn eslint scripts $(SOURCES) '*.js' --format=codeframe
|
||||
|
||||
lint-ts:
|
||||
./scripts/tests/typescript/lint.sh
|
||||
scripts/tests/typescript/lint.sh
|
||||
|
||||
fix: fix-json
|
||||
./node_modules/.bin/eslint scripts $(SOURCES) '*.js' --format=codeframe --fix
|
||||
yarn eslint scripts $(SOURCES) '*.js' --format=codeframe --fix
|
||||
|
||||
fix-json:
|
||||
./node_modules/.bin/prettier "{packages,codemod}/*/test/fixtures/**/options.json" --write --loglevel warn
|
||||
yarn prettier "{packages,codemod}/*/test/fixtures/**/options.json" --write --loglevel warn
|
||||
|
||||
clean: test-clean
|
||||
rm -f .npmrc
|
||||
@ -79,14 +79,18 @@ test-clean:
|
||||
$(foreach source, $(SOURCES), \
|
||||
$(call clean-source-test, $(source)))
|
||||
|
||||
# Does not work on Windows; use "yarn jest" instead
|
||||
test-only:
|
||||
BABEL_ENV=test ./scripts/test.sh
|
||||
make test-clean
|
||||
|
||||
test: lint test-only
|
||||
|
||||
test-ci: bootstrap test-only
|
||||
test-ci: bootstrap
|
||||
BABEL_ENV=test yarn jest --maxWorkers=4 --ci
|
||||
make test-clean
|
||||
|
||||
# Does not work on Windows
|
||||
test-ci-coverage: SHELL:=/bin/bash
|
||||
test-ci-coverage:
|
||||
BABEL_COVERAGE=true BABEL_ENV=test make bootstrap
|
||||
@ -94,9 +98,9 @@ test-ci-coverage:
|
||||
bash <(curl -s https://codecov.io/bash) -f coverage/coverage-final.json
|
||||
|
||||
bootstrap-flow:
|
||||
rm -rf ./build/flow
|
||||
mkdir -p ./build
|
||||
git clone --branch=master --single-branch --shallow-since=2018-11-01 https://github.com/facebook/flow.git ./build/flow
|
||||
rm -rf build/flow
|
||||
mkdir -p build
|
||||
git clone --branch=master --single-branch --shallow-since=2018-11-01 https://github.com/facebook/flow.git build/flow
|
||||
cd build/flow && git checkout $(FLOW_COMMIT)
|
||||
|
||||
test-flow:
|
||||
@ -108,9 +112,9 @@ test-flow-update-whitelist:
|
||||
node scripts/tests/flow/run_babel_parser_flow_tests.js --update-whitelist
|
||||
|
||||
bootstrap-test262:
|
||||
rm -rf ./build/test262
|
||||
mkdir -p ./build
|
||||
git clone --branch=master --single-branch --shallow-since=2019-01-01 https://github.com/tc39/test262.git ./build/test262
|
||||
rm -rf build/test262
|
||||
mkdir -p build
|
||||
git clone --branch=master --single-branch --shallow-since=2019-01-01 https://github.com/tc39/test262.git build/test262
|
||||
cd build/test262 && git checkout $(TEST262_COMMIT)
|
||||
|
||||
test-test262:
|
||||
@ -121,6 +125,7 @@ test-test262-ci: bootstrap test-test262
|
||||
test-test262-update-whitelist:
|
||||
node scripts/tests/test262/run_babel_parser_test262.js --update-whitelist
|
||||
|
||||
# Does not work on Windows
|
||||
clone-license:
|
||||
./scripts/clone-license.sh
|
||||
|
||||
@ -139,11 +144,11 @@ prepublish:
|
||||
|
||||
new-version:
|
||||
git pull --rebase
|
||||
./node_modules/.bin/lerna version --force-publish="@babel/runtime,@babel/runtime-corejs2,@babel/runtime-corejs3,@babel/standalone,@babel/preset-env-standalone"
|
||||
yarn lerna version --force-publish="@babel/runtime,@babel/runtime-corejs2,@babel/runtime-corejs3,@babel/standalone,@babel/preset-env-standalone"
|
||||
|
||||
# NOTE: Run make new-version first
|
||||
publish: prepublish
|
||||
./node_modules/.bin/lerna publish from-git --require-scripts
|
||||
yarn lerna publish from-git --require-scripts
|
||||
make clean
|
||||
|
||||
publish-ci: prepublish
|
||||
@ -153,13 +158,13 @@ else
|
||||
echo "Missing NPM_TOKEN env var"
|
||||
exit 1
|
||||
endif
|
||||
./node_modules/.bin/lerna publish from-git --require-scripts --yes
|
||||
yarn lerna publish from-git --require-scripts --yes
|
||||
rm -f .npmrc
|
||||
make clean
|
||||
|
||||
bootstrap-only: clean-all
|
||||
yarn --ignore-engines
|
||||
./node_modules/.bin/lerna bootstrap -- --ignore-engines
|
||||
yarn lerna bootstrap -- --ignore-engines
|
||||
|
||||
bootstrap: bootstrap-only
|
||||
make build
|
||||
|
||||
5
packages/babel-cli/test/fixtures/babel/stdin --filename windows/options.json
vendored
Normal file
5
packages/babel-cli/test/fixtures/babel/stdin --filename windows/options.json
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"args": ["--filename", "test.js"],
|
||||
"stderrContains": true,
|
||||
"os": ["win32"]
|
||||
}
|
||||
1
packages/babel-cli/test/fixtures/babel/stdin --filename windows/stderr.txt
vendored
Normal file
1
packages/babel-cli/test/fixtures/babel/stdin --filename windows/stderr.txt
vendored
Normal file
@ -0,0 +1 @@
|
||||
SyntaxError: <CWD>\test.js: Unexpected token, expected ";" (2:10)
|
||||
3
packages/babel-cli/test/fixtures/babel/stdin --filename windows/stdin.txt
vendored
Normal file
3
packages/babel-cli/test/fixtures/babel/stdin --filename windows/stdin.txt
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
arr.map(function () {
|
||||
return $]!;
|
||||
});
|
||||
@ -1,4 +1,5 @@
|
||||
{
|
||||
"args": ["--filename", "test.js"],
|
||||
"stderrContains": true
|
||||
"stderrContains": true,
|
||||
"os": ["linux", "darwin"]
|
||||
}
|
||||
|
||||
@ -185,7 +185,29 @@ fs.readdirSync(fixtureLoc).forEach(function(binName) {
|
||||
};
|
||||
|
||||
const optionsLoc = path.join(testLoc, "options.json");
|
||||
if (fs.existsSync(optionsLoc)) merge(opts, require(optionsLoc));
|
||||
if (fs.existsSync(optionsLoc)) {
|
||||
const taskOpts = require(optionsLoc);
|
||||
if (taskOpts.os) {
|
||||
let os = taskOpts.os;
|
||||
|
||||
if (!Array.isArray(os) && typeof os !== "string") {
|
||||
throw new Error(
|
||||
`'os' should be either string or string array: ${taskOpts.os}`,
|
||||
);
|
||||
}
|
||||
|
||||
if (typeof os === "string") {
|
||||
os = [os];
|
||||
}
|
||||
|
||||
if (!os.includes(process.platform)) {
|
||||
return;
|
||||
}
|
||||
|
||||
delete taskOpts.os;
|
||||
}
|
||||
merge(opts, taskOpts);
|
||||
}
|
||||
|
||||
["stdout", "stdin", "stderr"].forEach(function(key) {
|
||||
const loc = path.join(testLoc, key + ".txt");
|
||||
@ -205,7 +227,7 @@ fs.readdirSync(fixtureLoc).forEach(function(binName) {
|
||||
opts.inFiles[".babelrc"] = helper.readFile(babelrcLoc);
|
||||
}
|
||||
|
||||
it(testName, buildTest(binName, testName, opts));
|
||||
it(testName, buildTest(binName, testName, opts), 20000);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
import escapeRegExp from "lodash/escapeRegExp";
|
||||
import { loadOptions as loadOptionsOrig } from "../lib";
|
||||
|
||||
function fixture(...args) {
|
||||
@ -33,7 +34,7 @@ describe("buildConfigChain", function() {
|
||||
cwd: fixture("nonexistant-fake"),
|
||||
filename: fixture("nonexistant-fake", "src.js"),
|
||||
babelrc: false,
|
||||
test: new RegExp(fixture("nonexistant-fake")),
|
||||
test: new RegExp(escapeRegExp(fixture("nonexistant-fake"))),
|
||||
comments: true,
|
||||
});
|
||||
|
||||
@ -69,7 +70,7 @@ describe("buildConfigChain", function() {
|
||||
cwd: fixture("nonexistant-fake"),
|
||||
filename: fixture("nonexistant-fake", "src.js"),
|
||||
babelrc: false,
|
||||
test: new RegExp(fixture("nonexistant-unknown")),
|
||||
test: new RegExp(escapeRegExp(fixture("nonexistant-unknown"))),
|
||||
comments: true,
|
||||
});
|
||||
|
||||
@ -107,7 +108,7 @@ describe("buildConfigChain", function() {
|
||||
cwd: fixture("nonexistant-fake"),
|
||||
filename: fixture("nonexistant-fake", "src.js"),
|
||||
babelrc: false,
|
||||
test: [new RegExp(fixture("nonexistant-fake"))],
|
||||
test: [new RegExp(escapeRegExp(fixture("nonexistant-fake")))],
|
||||
comments: true,
|
||||
});
|
||||
|
||||
@ -143,7 +144,7 @@ describe("buildConfigChain", function() {
|
||||
cwd: fixture("nonexistant-fake"),
|
||||
filename: fixture("nonexistant-fake", "src.js"),
|
||||
babelrc: false,
|
||||
test: [new RegExp(fixture("nonexistant-unknown"))],
|
||||
test: [new RegExp(escapeRegExp(fixture("nonexistant-unknown")))],
|
||||
comments: true,
|
||||
});
|
||||
|
||||
@ -183,7 +184,7 @@ describe("buildConfigChain", function() {
|
||||
cwd: fixture("nonexistant-fake"),
|
||||
filename: fixture("nonexistant-fake", "src.js"),
|
||||
babelrc: false,
|
||||
include: new RegExp(fixture("nonexistant-fake")),
|
||||
include: new RegExp(escapeRegExp(fixture("nonexistant-fake"))),
|
||||
comments: true,
|
||||
});
|
||||
|
||||
@ -219,7 +220,7 @@ describe("buildConfigChain", function() {
|
||||
cwd: fixture("nonexistant-fake"),
|
||||
filename: fixture("nonexistant-fake", "src.js"),
|
||||
babelrc: false,
|
||||
include: new RegExp(fixture("nonexistant-unknown")),
|
||||
include: new RegExp(escapeRegExp(fixture("nonexistant-unknown"))),
|
||||
comments: true,
|
||||
});
|
||||
|
||||
@ -257,7 +258,7 @@ describe("buildConfigChain", function() {
|
||||
cwd: fixture("nonexistant-fake"),
|
||||
filename: fixture("nonexistant-fake", "src.js"),
|
||||
babelrc: false,
|
||||
include: [new RegExp(fixture("nonexistant-fake"))],
|
||||
include: [new RegExp(escapeRegExp(fixture("nonexistant-fake")))],
|
||||
comments: true,
|
||||
});
|
||||
|
||||
@ -293,7 +294,7 @@ describe("buildConfigChain", function() {
|
||||
cwd: fixture("nonexistant-fake"),
|
||||
filename: fixture("nonexistant-fake", "src.js"),
|
||||
babelrc: false,
|
||||
include: [new RegExp(fixture("nonexistant-unknown"))],
|
||||
include: [new RegExp(escapeRegExp(fixture("nonexistant-unknown")))],
|
||||
comments: true,
|
||||
});
|
||||
|
||||
@ -333,7 +334,7 @@ describe("buildConfigChain", function() {
|
||||
cwd: fixture("nonexistant-fake"),
|
||||
filename: fixture("nonexistant-fake", "src.js"),
|
||||
babelrc: false,
|
||||
exclude: new RegExp(fixture("nonexistant-fake")),
|
||||
exclude: new RegExp(escapeRegExp(fixture("nonexistant-fake"))),
|
||||
comments: true,
|
||||
});
|
||||
|
||||
@ -369,7 +370,7 @@ describe("buildConfigChain", function() {
|
||||
cwd: fixture("nonexistant-fake"),
|
||||
filename: fixture("nonexistant-fake", "src.js"),
|
||||
babelrc: false,
|
||||
exclude: new RegExp(fixture("nonexistant-unknown")),
|
||||
exclude: new RegExp(escapeRegExp(fixture("nonexistant-unknown"))),
|
||||
comments: true,
|
||||
});
|
||||
|
||||
@ -407,7 +408,7 @@ describe("buildConfigChain", function() {
|
||||
cwd: fixture("nonexistant-fake"),
|
||||
filename: fixture("nonexistant-fake", "src.js"),
|
||||
babelrc: false,
|
||||
exclude: [new RegExp(fixture("nonexistant-fake"))],
|
||||
exclude: [new RegExp(escapeRegExp(fixture("nonexistant-fake")))],
|
||||
comments: true,
|
||||
});
|
||||
|
||||
@ -443,7 +444,7 @@ describe("buildConfigChain", function() {
|
||||
cwd: fixture("nonexistant-fake"),
|
||||
filename: fixture("nonexistant-fake", "src.js"),
|
||||
babelrc: false,
|
||||
exclude: [new RegExp(fixture("nonexistant-unknown"))],
|
||||
exclude: [new RegExp(escapeRegExp(fixture("nonexistant-unknown")))],
|
||||
comments: true,
|
||||
});
|
||||
|
||||
|
||||
@ -24,14 +24,20 @@ export default class SourceMap {
|
||||
|
||||
const code = this._code;
|
||||
if (typeof code === "string") {
|
||||
map.setSourceContent(this._opts.sourceFileName, code);
|
||||
map.setSourceContent(
|
||||
this._opts.sourceFileName.replace(/\\/g, "/"),
|
||||
code,
|
||||
);
|
||||
} else if (typeof code === "object") {
|
||||
Object.keys(code).forEach(sourceFileName => {
|
||||
map.setSourceContent(sourceFileName, code[sourceFileName]);
|
||||
map.setSourceContent(
|
||||
sourceFileName.replace(/\\/g, "/"),
|
||||
code[sourceFileName],
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
this._rawMappings.forEach(map.addMapping, map);
|
||||
this._rawMappings.forEach(mapping => map.addMapping(mapping), map);
|
||||
}
|
||||
|
||||
return this._cachedMap.toJSON();
|
||||
@ -83,7 +89,10 @@ export default class SourceMap {
|
||||
line: generatedLine,
|
||||
column: generatedColumn,
|
||||
},
|
||||
source: line == null ? undefined : filename || this._opts.sourceFileName,
|
||||
source:
|
||||
line == null
|
||||
? undefined
|
||||
: (filename || this._opts.sourceFileName).replace(/\\/g, "/"),
|
||||
original:
|
||||
line == null
|
||||
? undefined
|
||||
|
||||
@ -192,6 +192,26 @@ export default function get(entryLoc): Array<Suite> {
|
||||
delete taskOpts.minNodeVersion;
|
||||
}
|
||||
|
||||
if (taskOpts.os) {
|
||||
let os = taskOpts.os;
|
||||
|
||||
if (!Array.isArray(os) && typeof os !== "string") {
|
||||
throw new Error(
|
||||
`'os' should be either string or string array: ${taskOpts.os}`,
|
||||
);
|
||||
}
|
||||
|
||||
if (typeof os === "string") {
|
||||
os = [os];
|
||||
}
|
||||
|
||||
if (!os.includes(process.platform)) {
|
||||
return;
|
||||
}
|
||||
|
||||
delete taskOpts.os;
|
||||
}
|
||||
|
||||
// traceur checks
|
||||
|
||||
if (test.exec.code.indexOf("// Async.") >= 0) {
|
||||
|
||||
@ -295,12 +295,22 @@ function validateFile(actualCode, expectedLoc, expectedCode) {
|
||||
}
|
||||
|
||||
function normalizeOutput(code) {
|
||||
return code
|
||||
let result = code
|
||||
.trim()
|
||||
.replace(
|
||||
new RegExp(escapeRegExp(path.resolve(__dirname, "../../../")), "g"),
|
||||
"<CWD>",
|
||||
);
|
||||
if (process.platform === "win32") {
|
||||
result = result.replace(
|
||||
new RegExp(
|
||||
escapeRegExp(path.resolve(__dirname, "../../../").replace(/\\/g, "/")),
|
||||
"g",
|
||||
),
|
||||
"<CWD>",
|
||||
);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
const toEqualFile = () => ({
|
||||
|
||||
@ -198,7 +198,7 @@ fs.readdirSync(fixtureLoc).forEach(function(binName) {
|
||||
opts.inFiles[".babelrc"] = helper.readFile(babelrcLoc);
|
||||
}
|
||||
|
||||
it(testName, buildTest(binName, testName, opts));
|
||||
it(testName, buildTest(binName, testName, opts), 20000);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
{
|
||||
"os": ["linux", "darwin"]
|
||||
}
|
||||
@ -0,0 +1,3 @@
|
||||
{
|
||||
"os": ["linux", "darwin"]
|
||||
}
|
||||
3
packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/options.json
vendored
Normal file
3
packages/babel-plugin-transform-runtime/test/fixtures/absoluteRuntime/options.json
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"os": ["linux", "darwin"]
|
||||
}
|
||||
@ -56,6 +56,10 @@ export const logEntryPolyfills = (
|
||||
polyfillTargets: Targets,
|
||||
allBuiltInsList: { [key: string]: Targets },
|
||||
) => {
|
||||
// normalize filename to generate consistent preset-env test fixtures
|
||||
if (process.env.BABEL_ENV === "test") {
|
||||
filename = filename.replace(/\\/g, "/");
|
||||
}
|
||||
if (!importPolyfillIncluded) {
|
||||
console.log(`\n[${filename}] Import of ${polyfillName} was not found.`);
|
||||
return;
|
||||
@ -83,6 +87,10 @@ export const logUsagePolyfills = (
|
||||
polyfillTargets: Targets,
|
||||
allBuiltInsList: { [key: string]: Targets },
|
||||
) => {
|
||||
// normalize filename to generate consistent preset-env test fixtures
|
||||
if (process.env.BABEL_ENV === "test") {
|
||||
filename = filename.replace(/\\/g, "/");
|
||||
}
|
||||
if (!polyfills.size) {
|
||||
console.log(
|
||||
`\n[${filename}] Based on your code and targets, core-js polyfills were not added.`,
|
||||
|
||||
@ -33,8 +33,13 @@ export default function() {
|
||||
},
|
||||
post() {
|
||||
if (this.opts.debug && this.regeneratorImportExcluded) {
|
||||
let filename = this.file.opts.filename;
|
||||
// normalize filename to generate consistent preset-env test fixtures
|
||||
if (process.env.BABEL_ENV === "test") {
|
||||
filename = filename.replace(/\\/g, "/");
|
||||
}
|
||||
console.log(
|
||||
`\n[${this.file.opts.filename}] Based on your targets, regenerator-runtime import excluded.`,
|
||||
`\n[${filename}] Based on your targets, regenerator-runtime import excluded.`,
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
@ -21,8 +21,13 @@ export default function() {
|
||||
},
|
||||
post() {
|
||||
if (this.opts.debug && this.usesRegenerator) {
|
||||
let filename = this.file.opts.filename;
|
||||
// normalize filename to generate consistent preset-env test fixtures
|
||||
if (process.env.BABEL_ENV === "test") {
|
||||
filename = filename.replace(/\\/g, "/");
|
||||
}
|
||||
console.log(
|
||||
`\n[${this.file.opts.filename}] Based on your code and targets, added regenerator-runtime.`,
|
||||
`\n[${filename}] Based on your code and targets, added regenerator-runtime.`,
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
19
packages/babel-preset-react/test/fixtures/preset-options/development-windows/exec.js
vendored
Normal file
19
packages/babel-preset-react/test/fixtures/preset-options/development-windows/exec.js
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
const actual = transform(
|
||||
'<Foo bar="baz" />',
|
||||
Object.assign({}, opts, { filename: 'C:\\fake\\path\\mock.js' })
|
||||
).code;
|
||||
|
||||
const expected = multiline([
|
||||
'var _jsxFileName = "C:\\\\fake\\\\path\\\\mock.js";',
|
||||
'React.createElement(Foo, {',
|
||||
' bar: "baz",',
|
||||
' __source: {',
|
||||
' fileName: _jsxFileName,',
|
||||
' lineNumber: 1',
|
||||
' },',
|
||||
' __self: this',
|
||||
'});',
|
||||
]);
|
||||
|
||||
|
||||
expect(actual).toBe(expected);
|
||||
4
packages/babel-preset-react/test/fixtures/preset-options/development-windows/options.json
vendored
Normal file
4
packages/babel-preset-react/test/fixtures/preset-options/development-windows/options.json
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"presets": [["react", { "development": true }]],
|
||||
"os": ["win32"]
|
||||
}
|
||||
@ -1,3 +1,4 @@
|
||||
{
|
||||
"presets": [["react", { "development": true }]]
|
||||
"presets": [["react", { "development": true }]],
|
||||
"os": ["linux", "darwin"]
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user