首页 > 解决方案 > 如何安装 polyfill aurelia

问题描述

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

我真的需要让它在 IE 11 上运行,正如他们所说,我需要 polyfill 才能让它运行。

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

标签: aureliapolyfills

解决方案


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

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

 npm install --save element-closest

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

    "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 buildorau run之后,这就是我的scripts/vendor-bundle.js文件开头的样子:

在此处输入图像描述

原答案如下

你问这个问题已经一个星期了,还没有答案。原因是你的问题非常模糊。

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

请注意,这并不是一个真正的 Aurelia 问题,而是关于您正在使用的任何捆绑器的问题。另外,请注意,作为最后的手段,可以使用脚本标签简单地加载 polyfill。


推荐阅读