Resolve Babel options ahead of time 🎉 #1262
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
RFC 001 requires us to resolve Babel options in the main process. This PR lands that new behavior, fixing #707 in the process.
Note that with these changes AVA will no longer resolve
.babelrc
files relative to the test file. Instead it only looks at a.babelrc
file in the project directory.AVA's
stage-4
andtransform-test-files
presets no longer have the package hashes of their plugins included in the caching hash for Babel transforms. This behavior will shift topackage-hash
itself, see novemberborn/package-hash#22.The caching hash is now derived from the full Node.js version, rather than just the major. This allows for presets / plugins which vary behavior based on feature differences in minor releases. I'm assuming that people don't update their Node.js versions all of the time, so this shouldn't really have an impact. Note that cached files for other versions are preserved, so this doesn't impact users who switch between Node.js versions.
We're now better at detecting whether Babel options have changed, especially for users who
extend
other files. We're also hashing the presets and plugins and will reapply transforms when these versions change.