Cannot build Ember on ARM64
sandstrom opened this issue · comments
Due to issues with nested dependencies, we cannot build Ember on ARM64 on Linux.
The chain of events that's causing this is outlined below:
-
This package is relying on
babel-polyfill
(current recommendations is to use core-js directly).
https://github.com/babel/ember-cli-babel/blob/v7.26.11/package.json#L53 -
babel-polyfill
is using an old version of core-js.
https://github.com/babel/babel/blob/v7.11.5/packages/babel-polyfill/package.json#L22This old version is also outdated, this is the warning shown by NPM:
npm WARN deprecated core-js@2.6.12: core-js@<3.4 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Please, upgrade your dependencies to the actual version of core-js.
-
The old version of CoreJS has PhantomJS as a dependency.
https://github.com/zloirock/core-js/blob/v2.6.5/package.json#L29Newer versions of core-js has zero npm dependencies.
-
The PhantomJS package is deprecated and unmaintained, and it breaks ARM64 on Linux (running npm install with that dependency on your package-lock file will crash).
https://www.npmjs.com/package/phantomjs-prebuilt
At level 3 and 4 above there is nothing we can do (core-js has fixed this in recent versions and phantomjs is dead, and will never support ARM). So we should either try to get a fix in with babel-polyfill (level 2), or update this project to not rely on babel-polyfill (level 1).
Questions:
- Will
ember-cli-babel
even exist in the new Embroider world? If not, it's probably not worth spending time fixing this. - Is it possible to update this package to not rely on babel-polyfill?
Going to close this as polyfill support was removed in v8.