After publishing coffeescript@2.3.1_1, I noticed that the version of
babel-runtime (1.2.5) that is bundled into the compile-coffeescript plugin
was complaining about the presence of @babel/runtime@7.0.0-rc.1 in the
node_modules directory of Meteor 1.7.1-rc.3 apps, thanks to code added
recently to work around breaking changes in @babel/runtime@7.0.0-beta.56:
4d5fff99eb
The easiest way to fix this problem in the short term is to give the
compile-coffeescript plugin its own reliable copy of the @babel/runtime
npm package, rather than delegating to the version installed in the app.
The ideal long-term way to fix this problem would be to stop precompiling
Meteor compiler plugins before publishing them, and instead treat them
like any other Meteor package, which are compiled after installation.
Another issue that could have been prevented if compiler plugins were
compiled upon installation, like other packages: #10148
cc @hwillson @abernix @GeoffreyBooth
While Babel 7 seems to work perfectly well, and the process of upgrading
has been useful, the upgrade is going to require Meteor developers to
update the babel-runtime npm package and their .babelrc plugins, a chore
with which Meteor can't help very much.
On top of that, Babel 7 is still in early beta. I don't want to ship
Meteor 1.6 with a critical component that could change in unexpected ways,
and I don't want to wait for Babel 7 to be finalized to ship Meteor 1.6.
Note that the Meteor command-line tool is still implemented using Babel 7,
which has historically been a great way to gain confidence in
Babel-related changes before pushing them out to all Meteor developers.
@GeoffreyBooth This should take some pressure off the CoffeeScript upgrade
for now. Let's aim for Meteor 1.6.1 for Babel 7 and CoffeeScript 2.0.
New coffeescript* versions are necessary because we've bumped the major
versions of babel-compiler and babel-runtime.
To verify that these new versions work, create a new app with
meteor create --release 1.6-beta.30 new-app
and then add coffeescript to it:
cd new-app
meteor add coffeescript@1.12.7-2-beta.30
If everything works, you should get -beta.30 versions of coffeescript and
coffeescript-compiler, instead of something earlier.
cc @GeoffreyBooth