我有几个 Meteor Web 应用程序,它们通过客户端中的 NPM 依赖于 D3.js。
D3 的 v6 版本取消了对 ES5 的支持,并且只针对浏览器部署到 NPM 的代码——我的应用程序需要支持 IE11,所以需要 ES5 支持。
我最初尝试直接通过 Meteor 中的工具在本地进行转译(https://guide.meteor.com/using-npm-packages.html#recompile和https://docs.meteor.com/packages/ecmascript.html) ,但后来发现它仅适用于 DIRECT 依赖项,不适用于应用程序中的子依赖项,并且在 Meteor 包中完全不可用。
事实证明,D3 现在已经分解成许多子包。请参阅:https : //github.com/d3/d3/blob/master/index.js和https://github.com/d3/d3/blob/master/package.json#L46 - 所以所有的代码需要重新编译存在于间接依赖中。
我在那里尝试的一切都会导致死胡同,所以我想我会更多地考虑其他选择。
剩下的选项似乎是:
https://d3js.org/d3.v6.js)获取 npm 包并将它们转换为 ES5 并缓存结果。有谁知道这样做的CDN?如果我不担心某些性能边缘情况,我几乎想通过 Lambda@Edge 和 CloudFront 制作我自己的一个,如果我所想的实际上并不存在。
我还接受有关如何成功地在 MeteorJS 中本地转译 D3 v6 以支持 …