Skip to content

[Firestore] Support for ES2015 transpilation #1525

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
byrondover opened this issue Mar 25, 2018 · 3 comments
Closed

[Firestore] Support for ES2015 transpilation #1525

byrondover opened this issue Mar 25, 2018 · 3 comments

Comments

@byrondover
Copy link
Contributor

byrondover commented Mar 25, 2018

I am reopening #1474 in the hopes of getting official word on support for ES2015. If there's some way to work around or disable these warnings in production, I'm open to ideas!

Thank you!

Version info

Angular: 5.2.9

% ng --version

    _                      _                 ____ _     ___
   / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
  / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
 / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
/_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
               |___/

Angular CLI: 1.7.3
Node: 9.9.0
OS: darwin x64
Angular: 5.2.9
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cdk: 5.2.4
@angular/cli: 1.7.3
@angular/flex-layout: 5.0.0-beta.13
@angular/material: 5.2.4
@angular-devkit/build-optimizer: 0.3.2
@angular-devkit/core: 0.3.2
@angular-devkit/schematics: 0.3.2
@ngtools/json-schema: 1.2.0
@ngtools/webpack: 1.10.2
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
typescript: 2.6.2
webpack-bundle-analyzer: 2.11.1
webpack: 3.11.0

Firebase: 4.12.0

AngularFire: 5.0.0-rc.6

Node: 9.9.0

Browser: Chrome OS v65.0.3325.181

Operating system: macOS Sierra v10.12.6

How to reproduce these conditions

Steps to set up and reproduce

Add or change "target" to "es2015" in tsconfig.json.

{
  "compilerOptions": {
    ...
    "target": "es2015"
  }
}

Debug output

Errors in the console

% ng serve --aot

** NG Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
Date: 2018-03-25T04:00:02.416Z
Hash: dc113b0687125a06b868
Time: 31041ms
chunk {inline} inline.bundle.js (inline) 3.85 kB [entry] [rendered]
chunk {main} main.bundle.js (main) 3.38 MB [initial] [rendered]
chunk {polyfills} polyfills.bundle.js (polyfills) 548 kB [initial] [rendered]
chunk {scripts} scripts.bundle.js (scripts) 24.3 kB [initial] [rendered]
chunk {styles} styles.bundle.js (styles) 203 kB [initial] [rendered]
chunk {vendor} vendor.bundle.js (vendor) 20.9 MB [initial] [rendered]

WARNING in ./src/app/app.module.ngfactory.js
155:4285-4291 "export 'ɵa' (imported as 'i48') was not found in 'angularfire2/firestore'

webpack: Compiled with warnings.

Screenshots

screen shot 2018-03-24 at 9 28 32 pm

Expected behavior

Users see warnings in browser console when loading web application.

Actual behavior

No warnings in browser console on supported browsers when target is set to ES2015.

@davideast
Copy link
Collaborator

Hey @byrondover! Would you like to send the PR of adding the es2015 field in each module's package.json?

@byrondover
Copy link
Contributor Author

I'm on a business trip until Friday, but I shall give it a shot this weekend.

Thanks for the tip, David! 👊

@byrondover
Copy link
Contributor Author

TL;DR: Refactoring AngularFireModule module for Angular Universal (#1454) also addressed these console warnings. 🎉

Bumping angularfire2 version to 5.0.0-rc.7.0-next provides early access to this fantastic update.


I went through the es2015 fields in each module's package.json, and found the core packages already contain a populated es2015 field.

Since I believe everything's as it should be, I'm closing this issue. If I have missed an opportunity to contribute, please feel free to reopen and @ me. 😄


Raw Notes

angularfire2 [master] % find . | grep package.json
./package.json
./src/auth/package.json
./src/core/package.json
./src/database/package.json
./src/database-deprecated/package.json
./src/firebase-node/package.json
./src/firestore/package.json
./src/storage/package.json
./test/ng-build/ng5/package.json
./test/ng-build/package.json
./test/universal-test/package.json

angularfire2 [master] % find . | grep package.json | xargs grep 'es2015'
./src/auth/package.json:  "es2015": "./es2015/index.js",
./src/core/package.json:  "es2015": "es2015/index.js",
./src/database/package.json:  "es2015": "./es2015/index.js",
./src/database-deprecated/package.json:  "es2015": "./es2015/index.js",
./src/firestore/package.json:  "es2015": "./es2015/index.js",
./src/storage/package.json:  "es2015": "./es2015/index.js",

angularfire2 [master] % yarn build
yarn run v1.6.0
$ rm -rf dist && node tools/build.js
Treating '@angular/core' as external dependency
Treating 'rxjs/Observable' as external dependency
Treating 'rxjs/scheduler/queue' as external dependency
Treating 'zone.js' as external dependency
Treating 'rxjs/add/operator/first' as external dependency
Treating 'rxjs/operator/observeOn' as external dependency
Treating '@firebase/app' as external dependency
Treating '@angular/core' as external dependency
Treating 'rxjs/Observable' as external dependency
Treating 'angularfire2' as external dependency
Treating 'rxjs/add/operator/switchMap' as external dependency
Treating 'rxjs/add/observable/of' as external dependency
Treating 'rxjs/add/observable/fromPromise' as external dependency
Treating '@firebase/auth' as external dependency
Treating '@angular/core' as external dependency
Treating 'rxjs/Observable' as external dependency
Treating 'rxjs/add/operator/map' as external dependency
Treating 'rxjs/add/operator/delay' as external dependency
Treating 'rxjs/add/operator/share' as external dependency
Treating 'rxjs/add/operator/scan' as external dependency
Treating 'rxjs/add/observable/merge' as external dependency
Treating 'rxjs/add/observable/of' as external dependency
Treating 'rxjs/add/operator/switchMap' as external dependency
Treating 'rxjs/add/operator/filter' as external dependency
Treating 'rxjs/add/operator/distinctUntilChanged' as external dependency
Treating 'rxjs/add/operator/skipWhile' as external dependency
Treating 'rxjs/add/operator/withLatestFrom' as external dependency
Treating 'angularfire2' as external dependency
Treating '@firebase/database' as external dependency
Treating '@angular/core' as external dependency
Treating 'rxjs/observable/from' as external dependency
Treating 'rxjs/observable/of' as external dependency
Treating 'rxjs/add/operator/map' as external dependency
Treating 'rxjs/add/operator/catch' as external dependency
Treating 'rxjs/Observable' as external dependency
Treating 'rxjs/add/operator/share' as external dependency
Treating 'rxjs/add/operator/filter' as external dependency
Treating 'rxjs/add/operator/scan' as external dependency
Treating 'rxjs/add/observable/of' as external dependency
Treating 'angularfire2' as external dependency
Treating '@firebase/firestore' as external dependency
Treating 'rxjs/Observable' as external dependency
Treating 'rxjs/operators' as external dependency
Treating 'rxjs/observable/from' as external dependency
Treating '@angular/core' as external dependency
Treating 'angularfire2' as external dependency
Treating '@firebase/storage' as external dependency
Treating '@angular/core' as external dependency
Treating 'angularfire2' as external dependency
The `this` keyword is equivalent to `undefined` at the top level of an ES module, and has been rewritten
Treating 'rxjs/Observable' as external dependency
Treating 'rxjs/operator/observeOn' as external dependency
Treating 'rxjs/observable/of' as external dependency
Treating 'rxjs/operator/combineLatest' as external dependency
Treating 'rxjs/operator/merge' as external dependency
Treating 'rxjs/operator/map' as external dependency
Treating 'rxjs/operator/auditTime' as external dependency
Treating 'rxjs/operator/switchMap' as external dependency
Treating '@firebase/database' as external dependency
The `this` keyword is equivalent to `undefined` at the top level of an ES module, and has been rewritten
Treating '@angular/core/testing' as external dependency
Treating '@angular/core' as external dependency
Treating 'angularfire2' as external dependency
Treating '@angular/platform-browser' as external dependency
Treating 'rxjs/Subject' as external dependency
Treating 'rxjs/operator/take' as external dependency
Treating 'rxjs/operator/skip' as external dependency
Treating 'angularfire2/auth' as external dependency
Treating 'rxjs/observable/from' as external dependency
Treating 'rxjs/observable/of' as external dependency
Treating 'rxjs/add/operator/map' as external dependency
Treating 'rxjs/add/operator/catch' as external dependency
Treating 'rxjs/Observable' as external dependency
Treating 'rxjs/add/operator/share' as external dependency
Treating 'rxjs/add/operator/filter' as external dependency
Treating 'rxjs/add/operator/scan' as external dependency
Treating 'rxjs/add/observable/of' as external dependency
Treating '@firebase/firestore' as external dependency
Treating 'rxjs/BehaviorSubject' as external dependency
Treating 'rxjs/add/operator/skip' as external dependency
Treating 'angularfire2/database' as external dependency
Treating 'rxjs/observable/forkJoin' as external dependency
Treating 'angularfire2/storage' as external dependency

      core.umd.js - 4.2 KB, 1.2 KB
      auth.umd.js - 3.2 KB, 896 B
      database.umd.js - 14.1 KB, 3.1 KB
      firestore.umd.js - 11.1 KB, 2.3 KB
      storage.umd.js - 5.2 KB, 1.4 KB
      database-deprecated.umd.js - 26.1 KB, 4.6 KB

[ '5.0.0-rc.6',
  '5.0.0-rc.6',
  '5.0.0-rc.6',
  '5.0.0-rc.6',
  '5.0.0-rc.6',
  '5.0.0-rc.6',
  '5.0.0-rc.6' ]
data {
    "name": "angularfire2",
    "version": "5.0.0-rc.6",
    "description": "Fixes for Node.js",
    "main": "index.js",
    "keywords": [
      "angular",
      "firebase",
      "rxjs"
    ],
    "repository": {
      "type": "git",
      "url": "git+https://github.com/angular/angularfire2.git"
    },
    "author": "angular,firebase",
    "license": "MIT",
    "peerDependencies": {
      "xmlhttprequest": "^1.8.0",
      "ws": "^3.3.2",
      "bufferutil": "^3.0.3",
      "utf-8-validate": "^4.0.0"
    },
    "typings": "index.d.ts"
  }

complete
✨  Done in 29.39s.

% ng build --aot

Date: 2018-04-23T00:04:10.346Z
Hash: cbe91cc276683fd16652
Time: 49870ms
chunk {inline} inline.bundle.js, inline.bundle.js.map (inline) 3.89 kB [entry] [rendered]
chunk {main} main.bundle.js, main.bundle.js.map (main) 2.65 MB [initial] [rendered]
chunk {polyfills} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 202 kB [initial] [rendered]
chunk {scripts} scripts.bundle.js, scripts.bundle.js.map (scripts) 24.3 kB [initial] [rendered]
chunk {styles} styles.bundle.js, styles.bundle.js.map (styles) 75.8 kB [initial] [rendered]
chunk {vendor} vendor.bundle.js, vendor.bundle.js.map (vendor) 8.34 MB [initial] [rendered]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants