- Nicolò (@nicolo-ribaudo)
- Jùnliàng (@JLHwung)
- Kai (@kaicataldo)
- Henry (@hzoo)
Notes may have some mistakes, conversational!
- Nicolò: We should contact specific teams about new versioning ideas (relating to semver) for feedback (Next.js, Gatsby, CRA, anyone who uses us as a dependency directly) since they deal with these problems themselves (and because we break them due to how things currently work)
- One idea is to require the same minor versions of packages because of unintended breaking changes due to dependencies. (require all Babel dependencies to be updated, so if
@babel/core
is 7.9, every preset/plugin needs to be as well). - For context: if we introduce a new feature in core or a new helper, we can't use that feature in a plugin/preset/dep because someone's core might not be the updated.
- One idea is to require the same minor versions of packages because of unintended breaking changes due to dependencies. (require all Babel dependencies to be updated, so if
- Henry: Having less packages helps too. On a related note.. in Babel 8 maybe we should just move
targets
to be a top level option in the config vs. inpreset-env
. And further, might as well movepreset-env
intobabel/core
like we've been wanting to?- Also easier to convince people to move off of old integrations with
preset-env
- Nicolò: Don't need to specify the
targets
option multiple times (like for the new polyfill feature) - The new default option
targets: false
could explicitly not transpile for those that need that: codemods, other languages like php, fable. This would be the the opposite of current behavior where the default is essentiallypreset-latest
which compiles everything.
- Also easier to convince people to move off of old integrations with
- Make it easier to use
loose
mode options: more granular?- Maybe do this by introducing it via an assumption of capabilities. Can document this on a website and associate them with test cases (our own loose mode tests or
test262
). - We have an example of this already in use:
assumeArray
option forfor-of
plugin. - If the only
spec
option is for arrow functions, maybe we can remove the option entirely? - We can stay reasonable spec compliant by default, and allow opt-in for specifically non-spec.
- Maybe do this by introducing it via an assumption of capabilities. Can document this on a website and associate them with test cases (our own loose mode tests or
- Update: polyfilling integration is almost done
- Reconsider single babel package idea yet again?