如何安装polyfill aurelia

时间:2018-06-03 16:55:52

标签: aurelia polyfills

我正在使用aurelia-validation插件,我想在出现错误时使用他们的BootstrapFormRenderer:https://aurelia.io/docs/plugins/validation#custom-renderers

我真的需要让它在IE 11上运行,因为他们说我需要使用polyfill来使其正常工作。

如何安装polyfill并在aurelia中使用它以使其与IE 11一起使用? 以下是polyfill的链接:https://github.com/jonathantneal/closest

1 个答案:

答案 0 :(得分:1)

根据您的评论,我可以根据使用带有RequireJS的Aurelia CLI作为模块加载器/捆绑器来回答您的问题。

您需要做的第一件事是使用NPM来安装polyfill。

 npm install --save element-closest

完成此操作后,您需要更新aurelia.json文件。它位于aurelia_project文件夹中。如果您仍在使用与运行au new时相同的设置,则会配置两个捆绑包app-bundle.jsvendor-bundle.jsvendor-bundle配置具有prepend属性,其中已经配置了一些内容。前置部分是您要放置polyfill的位置,因为模块捆绑器只是将带有polyfill的文件内容复制/粘贴到bundle文件的开头。它不会将它包装在模块或任何东西中,因此在运行时,polyfill代码将自动执行,如果需要则添加polyfill。我建议将polyfill添加为vendor-bundle前置部分中的第一项。至少,它需要放在前置部分require.js之前。您可以在下面看到一个示例:

    "name": "vendor-bundle.js",
    "prepend": [
      "node_modules/element-closest/element-closest.js",
      "node_modules/bluebird/js/browser/bluebird.core.js",
      {
        "path": "node_modules/aurelia-cli/lib/resources/scripts/configure-bluebird-no-long-stacktraces.js",
        "env": "stage & prod"
      },
      {
        "path": "node_modules/aurelia-cli/lib/resources/scripts/configure-bluebird.js",
        "env": "dev"
      },
      "node_modules/requirejs/require.js"
    ],

执行此操作并运行au buildau run之后,这就是scripts/vendor-bundle.js文件的开头:

enter image description here

下面的Orignal答案

自从您提出问题以来已经过了一周,而且还没有答案。原因是你的问题非常模糊。

答案取决于您在构建应用时使用的模块加载器/捆绑器。您使用的是Aurelia CLI吗?如果是这样,您使用的是RequireJS还是Webpack?

请注意,这并不是Aurelia的问题,而是关于您使用的任何捆绑商的问题。另请注意,作为最后的手段,可以使用脚本标记简单地加载polyfills。