2017-02-20 31 views
5

Tôi mới dùng Ionic2/Angular2 & Tôi đã tìm kiếm một số giải pháp cho những việc cần làm để khắc phục sự cố polyfill bằng cách sử dụng định dạng ngày tháng (ví dụ trả lời ở đây: Ionic 2, Using Angular 2 Pipe breaks on iOS—"Can't find variable: Intl")Ionic 2 - Cách nhập khẩu polyfill Intl

nhưng những gì tôi không hiểu và những gì không có hướng dẫn/ngăn xếp giải thích tràn đã giúp tôi tìm ra, là nơi chính xác và chính xác như thế nào để thực hiện điều này. Tôi đã làm npm cài đặt để có được gói intl được thêm vào các mô-đun nút của tôi, nhưng mọi thứ chỉ nói "sau đó nhập" nhưng tôi không biết phải làm điều đó vì tôi không có tệp polyfill.ts mà tôi có thể nhập vào, chỉ có tệp build/polyfill.js & Tôi đã thử nhập trực tiếp vào tệp .ts sử dụng thao tác ngày intl, nhưng điều đó không giải quyết được vấn đề. Có thể tôi không hiểu điều gì đó khá cơ bản và đó là lý do tại sao không ai nói rõ bạn cần nhập nó ở đâu, nhưng ai đó có thể giải thích cho tôi cách nhập dữ liệu này hoặc giới thiệu tôi đến một tài nguyên để giải thích những gì tôi không hiểu.

+1

Thông thường polyfill.ts được nhập khẩu trong các module ứng dụng để nhập khẩu cần thiết polyfill trong mô-đun ứng dụng ông nên làm các trick –

+0

bạn là tốt nhất! Tôi đã câm và không có con đường ngay trên nhập khẩu .. bình luận của bạn trấn an tôi rằng tôi đã đi đúng hướng và sửa chữa đã làm việc. Tôi đã thực hiện nhập 'intl'; nhưng tôi cần nhập 'intl/dist/Intl.complete.js'; Cảm ơn bạn! Nếu bạn muốn sao chép/dán những gì bạn đã viết vào một câu trả lời tôi sẽ chấp nhận nó. –

+0

Tôi rất vui vì nó đã hoạt động! Những con đường đó luôn luôn kỳ lạ để tìm ra ... Tôi đã thực hiện một câu trả lời từ bình luận! –

Trả lời

10

Thông thường polyfill.ts được nhập khẩu trong ứng dụng mô-đun tập tin đó sẽ bootstrap ứng dụng của bạn thường này là file main.ts, vì vậy nhập khẩu polyfill cần thiết trong ứng dụng mô-đun tập tin bootstrap nên làm các trick .

Dưới đây là một ví dụ:

main.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'; 
+0

Tại sao nó phải ở trong main.ts (xin lưu ý rằng trong ionic mới nhất có main.ts và main.prod.ts) và không có trong app.module.ts? –

+0

@AlexRyltsov phụ thuộc vào môi trường của bạn, trong ví dụ tôi đã đưa ra phương thức mainstts của nó bị đột biến bởi một plugin webpack tùy thuộc vào biến môi trường (phát triển hoặc sản xuất). Nếu bạn có các tệp riêng biệt cho cả hai, bạn phải bao gồm các polyfills trong cả hai tệp hoặc một tệp được sử dụng trong cả phát triển và sản xuất. –

Các vấn đề liên quan