Resolving issues with zone-flags after upgrading to Ionic 5 with Angular 9

Johnathan Sanders
2 min readMar 28, 2020

Samsung Phone displaying the time

Just the other day, I encountered a weird issue while upgrading an existing Ionic 4 project with Angular 8 to Ionic 5 and Angular 9. After about an hour of searching high and low across the web, I gave in and started to figure it out myself.

I got into this predicament after performing the standard upgrade process for Angular 8 to 9 (Angular has a great utility to help you through upgrades between versions over at: update.angular.io), and doing a quick upgrade to Ionic per the instructions over at the Ionic 5 announcement post.

After that was done, and I performed ‘ionic serve’ to run the app, a compilation error in zone-flags.ts began popping up.

ERROR in ./src/zone-flags.ts
Module build failed(from ./node_modules/@ngtools/webpack/src/index.js):
Error /my/path/src/zone-flags.ts is missing from the TypeScript compilation. Please make sure it is in your tsconfig via the 'files' or 'include' property.

What was going on? I hadn’t changed anything, and this wasn’t in the breaking changes log.

  • I tried modifying my tsconfig per the error message, no dice.
  • Out of desperation, and what is probably very bad practice, I updated almost every library in package.json to @latest using npm. No luck.
  • Finally, I found the issue sitting inside src/polyfills.ts

The troublesome entry (for me at least) was near line 55.

import './zone-flags.ts';

Why was the typescript extension on the end of that import? That’s awfully odd I thought. Being the type of person that challenges things, I changed it and removed the .ts so the entry now looked like:

import './zone-flags';

Saving this file and re-running ‘ionic serve’ dropped this issue like a bad habit, and everything worked just fine after that!

So if you’re upgrading an Ionic 4 project with Angular, take a quick look at the polyfills file, and make sure there’s no funny business!

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Johnathan Sanders
Johnathan Sanders

Written by Johnathan Sanders

Johnathan Sanders is an engineer at Microsoft, a veteran technologist, digital transformation expert, cloud and software architect, and polyglot developer.

Responses (2)

Write a response

Thanks for the solution, it worked for me aswell. As i was curious to know why cant we keep .ts extention in import ?