Skip to content
This repository has been archived by the owner on Oct 9, 2020. It is now read-only.

r.BevhaviourSubject is not a constructor #829

Open
Skuriles opened this issue Aug 8, 2017 · 4 comments
Open

r.BevhaviourSubject is not a constructor #829

Skuriles opened this issue Aug 8, 2017 · 4 comments

Comments

@Skuriles
Copy link

Skuriles commented Aug 8, 2017

Hello all,
I've tried to update systemjs Builder to 0p.16 and system.js with 0.20 (latest version)
For developement we use systemjs, for production we use the systemjs-builder (same system.config.js).

Problem:
After using the builder Rxjs components no longer work like here:
Issue on Angular Cli
(for me it is r.BevhaviourSubject is not a constructor).
But I didn't find a solution in this issue which works for me

system.config:
Map
'rxjs': 'npm:rxjs',
Package
'rxjs': {main: 'Rx', defaultExtension: 'js' },

in TS file:
import {BehaviorSubject} from "rxjs/BehaviorSubject";
public authenticatedChange = new BehaviorSubject<boolean>(null);

In dev everthing works fine with 0.20. and 0.19. system js version.
So I rolled back to 0.15.X of systemjs Builder and 0.19 systemjs and everything works fine again.

We are also using some kind o uglify/minifier -> Could this issue related to this?
Or does anyone have the same issue, that rxjs is not working correctly after using the builder?
Or do the breaking changes in 0.16 affect the handling of rxjs?

Any help would be appreciated

Regards

@jamesbrobb
Copy link

Does it relate to this issue?

systemjs/systemjs#1675

@aluanhaddad
Copy link

This is usually caused by missing package configuration, specifically the format flag needs to be set since SystemJS 0.20 no longer automatically hoists named exports of CommonJS modules

SystemJS.config({
  packages: {
    'rxjs': {
      main: 'Rx',
      defaultExtension: 'js',
      format: 'esm'
    }
  }
});

@Skuriles
Copy link
Author

Skuriles commented Aug 9, 2017

Hm, tried it with the format flag, but now it throws other errors.
Just went back to systemjs 0.19 and all works fine.
Will have on the linked issue from @jamesbrobb

Thanks for help

@Go4th
Copy link

Go4th commented Feb 19, 2019

FYI, for me this was due to importing BehaviorSubject (and Subject for that matter) like
import { BehaviorSubject } from 'rxjs/BehaviorSubject'
This works during ng serve, but fails in prod build.
I changed to
import { BehaviorSubject } from 'rxjs/Rx'
and all works.

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

No branches or pull requests

4 participants