NathanWalker / nativescript-ngx-fonticon

Use custom font icon collections seamlessly with NativeScript + Angular.
MIT License
76 stars 39 forks source link

Can't run 4.2.0 #39

Closed Burgov closed 6 years ago

Burgov commented 6 years ago

Because of this change, I'm not getting the following error:

TypeError: document.createElement is not a function
File: "file:///data/data/io.neocles.dev/files/app/tns_modules/rxjs/util/Immediate.js, line: 56, column: 68

StackTrace: 
    Frame: function:'ImmediateDefinition.canUseReadyStateChange', file:'file:///data/data/io.neocles.dev/files/app/tns_modules/rxjs/util/Immediate.js', line: 56, column: 69
    Frame: function:'ImmediateDefinition', file:'file:///data/data/io.neocles.dev/files/app/tns_modules/rxjs/util/Immediate.js', line: 30, column: 27
    Frame: function:'', file:'file:///data/data/io.neocles.dev/files/app/tns_modules/rxjs/util/Immediate.js', line: 208, column: 21
    Frame: function:'require', file:'', line: 1, column: 266
    Frame: function:'', file:'file:///data/data/io.neocles.dev/files/app/tns_modules/rxjs/scheduler/AsapAction.js', line: 7, column: 19
    Frame: function:'require', file:'', line: 1, column: 266
    Frame: function:'', file:'file:///data/data/io.neocles.dev/files/app/tns_modules/rxjs/scheduler/asap.js', line: 2, column: 20
    Frame: function:'require', file:'', line: 1, column: 266
    Frame: function:'', file:'file:///data/data/io.neocles.dev/files/app/tns_modules/rxjs/observable/SubscribeOnObservable.js', line: 8, column: 14
    Frame: function:'require', file:'', line: 1, column: 266
    Frame: function:'', file:'file:///data/data/io.neocles.dev/files/app/tns_modules/rxjs/operators/subscribeOn.js', line: 2, column: 31
    Frame: function:'require', file:'', line: 1, column: 266
    Frame: function:'', file:'file:///data/data/io.neocles.dev/files/app/tns_modules/rxjs/operator/subscribeOn.js', line: 2, column: 21
    Frame: function:'require', file:'', line: 1, column: 266
    Frame: function:'', file:'file:///data/data/io.neocles.dev/files/app/tns_modules/rxjs/add/operator/subscribeOn.js', line: 3, column: 21
    Frame: function:'require', file:'', line: 1, column: 266
    Frame: function:'', file:'file:///data/data/io.neocles.dev/files/app/tns_modules/rxjs/Rx.js', line: 121, column: 1
    Frame: function:'require', file:'', line: 1, column: 266
    Frame: function:'', file:'file:///data/data/io.neocles.dev/files/app/tns_modules/nativescript-ngx-fonticon/services/fonticon.service.js', line: 5, column: 14
    Frame: function:'require', file:'', line: 1, column: 266
    Frame: function:'', file:'file:///data/data/io.neocles.dev/files/app/tns_modules/nativescript-ngx-fonticon/pipes/fonticon.pipe.js', line: 4, column: 26
    Frame: function:'require', file:'', line: 1, column: 266
    Frame: function:'', file:'file:///data/data/io.neocles.dev/files/app/tns_modules/nativescript-ngx-fonticon/nativescript-ngx-fonticon.js', line: 7, column: 23
    Frame: function:'require', file:'', line: 1, column: 266
    Frame: function:'', file:'file:///data/data/io.neocles.dev/files/app/app.module.js', line: 23, column: 35
    Frame: function:'require', file:'', line: 1, column: 266
    Frame: function:'', file:'file:///data/data/io.neocles.dev/files/app/main.js', line: 6, column: 20
    Frame: function:'require', file:'', line: 1, column: 266

By including all of rxjs, immediate.js gets included which assumes a document which doesn't exist in nativescript.

MilosStanic commented 6 years ago

Same here. Here's my error printout. In my case app crashes immediately after launch:

***** Fatal JavaScript exception - application has been terminated. *****
Native stack trace:
1   0x102785be0 NativeScript::reportFatalErrorBeforeShutdown(JSC::ExecState*, JSC::Exception*, bool)
2   0x1027b32a8 -[TNSRuntime executeModule:referredBy:]
3   0x1020c2748
4   0x183afdfc0 <redacted>
JavaScript stack trace:
1   canUseReadyStateChange@file:///app/tns_modules/rxjs/util/Immediate.js:56:82
2   ImmediateDefinition@file:///app/tns_modules/rxjs/util/Immediate.js:30:49
3   anonymous@file:///app/tns_modules/rxjs/util/Immediate.js:208:44
4   evaluate@[native code]
5   moduleEvaluation@[native code]
6   @[native code]
7   promiseReactionJob@[native code]
8   require@[native code]
9   anonymous@file:///app/tns_modules/rxjs/scheduler/AsapAction.js:7:26
10  evaluate@[native code]
11  moduleEvaluation@[native code]
12  @[native code]
13  promiseReactionJob@[native code]
14  require@[native code]
15  anonymous@file:///app/tns_modules/rxjs/scheduler/asap.js:2:27
16  evaluate@[native code]
17  moduleEvaluation@[native code]
18  @[native code]
19  promiseReactionJob@[native code]
20  require@[native code]
21  anonymous@file:///app/tns_modules/rxjs/observable/SubscribeOnObservable.js:8:21
22  evaluate@[native code]
23  moduleEvaluation@[native code]
24  @[native code]
25  promiseReactionJob@[native code]
26  require@[native code]
27  anonymous@file:///app/tns_modules/rxjs/operators/subscribeOn.js:2:38
28  evaluate@[native code]
29  moduleEvaluation@[native code]
30  @[native code]
31  promiseReactionJob@[native code]
32  require@[native code]
33  anonymous@file:///app/tns_modules/rxjs/operator/subscribeOn.js:2:28
34  evaluate@[native code]
35  moduleEvaluation@[native code]
36  @[native code]
37  promiseReactionJob@[native code]
38  require@[native code]
39  anonymous@file:///app/tns_modules/rxjs/add/operator/subscribeOn.js:3:28
40  evaluate@[native code]
41  moduleEvaluation@[native code]
42  @[native code]
43  promiseReactionJob@[native code]
44  require@[native code]
45  anonymous@file:///app/tns_modules/rxjs/Rx.js:121:8
46  evaluate@[native code]
47  moduleEvaluation@[native code]
48  @[native code]
49  promiseReactionJob@[native code]
50  require@[native code]
51  anonymous@file:///app/tns_modules/nativescript-ngx-fonticon/services/fonticon.service.js:5:21
52  evaluate@[native code]
53  moduleEvaluation@[native code]
54  @[native code]
55  promiseReactionJob@[native code]
56  require@[native code]
57  anonymous@file:///app/tns_modules/nativescript-ngx-fonticon/pipes/fonticon.pipe.js:4:33
58  evaluate@[native code]
59  moduleEvaluation@[native code]
60  @[native code]
61  promiseReactionJob@[native code]
62  require@[native code]
63  anonymous@file:///app/tns_modules/nativescript-ngx-fonticon/nativescript-ngx-fonticon.js:7:30
64  evaluate@[native code]
65  moduleEvaluation@[native code]
66  @[native code]
67  promiseReactionJob@[native code]
68  require@[native code]
69  anonymous@file:///app/app.module.js:8:42
70  evaluate@[native code]
71  moduleEvaluation@[native code]
72  @[native code]
73  promiseReactionJob@[native code]
74  require@[native code]
75  anonymous@file:///app/main.js:5:27
76  evaluate@[native code]
77  moduleEvaluation@[native code]
78  @[native code]
79  promiseReactionJob@[native code]
JavaScript error:
file:///app/tns_modules/rxjs/util/../src/util/Immediate.ts:69:78: JS ERROR TypeError: document.createElement is not a function. (In 'document.createElement('script')', 'document.createElement' is undefined)

Had to downgrade to v 4.1.1 to make things work.

m-abs commented 6 years ago

@NathanWalker Would this be solved by upgrading to rxjs-6.0?

farzeni commented 6 years ago

Same problem here

the cause of this is this import

file: nativescript-ngx-fonticon/services/fonticon.service.ts

import { BehaviorSubject } from 'rxjs';

which import the whole rxjs package causing that error.

it should be:

import { BehaviorSubject } from 'rxjs/BehaviorSubject';

look at https://github.com/NativeScript/nativescript-angular/issues/1201

farzeni commented 6 years ago

I confirm that is a problem related to rxjs-5.x

NathanWalker commented 6 years ago

You can use 4.0.0 and pin your version or just update to use rxjs 6.0.0. You can also add rxjs-compat which will make both import paths work.

4.2.0 is compatible with rxjs 6+

NathanWalker commented 6 years ago

For example:

"rxjs": "~6.1.0",
"rxjs-compat": "~6.1.0",

Or you can update your entire project to use ~6.1.0 without rxjs-compat ... or can again just pin the version of this lib. So many options.