-
Notifications
You must be signed in to change notification settings - Fork 27.1k
Description
🐞 bug report
Affected Package
The issue is caused by package @angular/core
Is this a regression?
Yes, the previous version in which this bug was not present was: 8.0.0-beta.11
Description
I'm the author of @ngx-pwa/local-storage, one of the main Angular library for local storage management, and I'm preparing for Angular V8 from some weeks.
I'd like v8 version of the lib to work in Angular 8 and in Angular 7 too if possible (due to some issues that happened in v7 like cyrilletuzi/angular-async-local-storage#64).
It worked well until Angular v8.0.0-beta.11, but since Angular v8.0.0-beta.12, using the lib in an Angular 7 project results in these messages on build:
WARNING in ./node_modules/@ngx-pwa/local-storage/fesm5/ngx-pwa-local-storage.js 256:36-54
"export 'ɵɵdefineInjectable' was not found in '@angular/core'
...
WARNING in ./node_modules/@ngx-pwa/local-storage/fesm5/ngx-pwa-local-storage.js 865:168-176
"export 'ɵɵinject' was not found in '@angular/core'
In the browser's console, the same errors appear and the app is completely broken due to this error:
Uncaught TypeError: Object(...) is not a function
🔬 Minimal Reproduction
git clone https://github.com/cyrilletuzi/ng8injectissue.git
cd ng8injectissue
npm start
It's just an empty Angular 7 project generated with ng new, then npm install the lib and just inject the service of the lib inside AppComponent constructor.
The lib is generated with all official tools (last Angular CLI and ng-packagr), you can see the v8 code here.
Anything else relevant?
Note that Angular v8.0.0-beta.12 was the version where Angular bumped from TypeScript 3.3 to 3.4.
So is this the desired behavior (ie. breaking retro-compatibility with v7?) or not? I thought imports starting with ɵɵ were Angular internals, so that they end up in the lib code seem more like a bug.
Lib issue: cyrilletuzi/angular-async-local-storage#103