Skip to content

[Firestore] Support for ES2015 transpilation #1525

Closed

Description

@byrondover

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.

Activity

  1. davideast commented on Mar 28, 2018

    @davideast
    Collaborator

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

  2. byrondover commented on Mar 28, 2018

    @byrondover
    ContributorAuthor

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

    Thanks for the tip, David! 👊

  3. byrondover commented on Apr 23, 2018

    @byrondover
    ContributorAuthor

    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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions