【问题标题】:Ionic 2 - How to Import Intl polyfillIonic 2 - 如何导入 Intl polyfill
【发布时间】:2017-07-10 06:17:57
【问题描述】:

我是 Ionic2 / Angular2 的新手,我一直在环顾四周,发现了几种解决方案,可以解决使用国际日期格式的 polyfill 问题(此处的示例答案:Ionic 2, Using Angular 2 Pipe breaks on iOS—"Can't find variable: Intl"

但我不明白,没有教程/堆栈溢出解释帮助我弄清楚,究竟在哪里以及如何完成这一点。我进行了 npm install 以将 intl 包添加到我的节点模块中,但是所有内容都只是说“然后导入它”,但我不知道在哪里执行此操作,因为我没有可以将其导入的 polyfill.ts 文件,只有 build/polyfill.js 文件,我尝试直接导入到使用 intl 日期操作的 .ts 文件中,但这并没有解决问题。

我可能不理解一些非常基本的东西,这就是为什么没有人明确说明你需要在哪里导入它,但有人可以向我解释如何导入它或让我参考资源来解释什么我不明白。

【问题讨论】:

  • 通常情况下,polyfill.ts 是在应用模块中导入的,因此在应用模块中导入所需的 polyfill 应该可以解决问题
  • 你是最棒的!我很笨,没有正确的导入路径。你的评论让我确信我走在正确的轨道上并且修复工作有效。我已经完成了 import 'intl';但我需要做 import 'intl/dist/Intl.complete.js';谢谢!如果您想将您写的内容复制/粘贴到答案中,我会接受。
  • 我很高兴它成功了!这些路径总是有点奇怪......我已经从评论中做出了回答!

标签: angular import ionic2 polyfills


【解决方案1】:

通常情况下,polyfill.ts 被导入到 app 模块 文件中,该文件通常会引导您的应用程序这是 main.ts 文件,因此在 app 模块中导入所需的 polyfill 引导文件应该可以解决问题。

这是一个例子:

ma​​in.ts

import './polyfills.ts';

import {platformBrowserDynamic} from '@angular/platform-browser-dynamic';
import {enableProdMode} from '@angular/core';

import {environment} from './environments/environment';
import {AppModule} from './app/app.module';

if (environment.production) {
  enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule);

polyfill.ts

// All needed polyfills for example web animations
import 'web-animations-js/web-animations.min';

【讨论】:

  • 为什么要在 main.ts 中(请注意,在最新的 ionic 中有 main.ts 和 main.prod.ts)而不是在 app.module.ts 中?
  • @AlexRyltsov 取决于您的环境,在我给出的 main.ts 示例中,它的引导方法由 webpack 插件根据环境变量(开发或生产)进行变异。如果两个文件都有单独的文件,则要么必须在两个文件中包含 polyfill,要么在开发和生产中都使用的文件中包含。
猜你喜欢
  • 2017-04-19
  • 2020-11-28
  • 2019-01-13
  • 1970-01-01
  • 1970-01-01
  • 2017-06-03
  • 2019-04-12
  • 2016-12-06
  • 1970-01-01
相关资源
最近更新 更多