nativescript-angular: document.createElement is not a function
I get the following error when attempting to run my app:
JavaScript error: file:///app/tns_modules/rxjs/util/Immediate.js:56:82: JS ERROR TypeError: document.createElement is not a function. (In 'document.createElement('script')', 'document.createElement' is undefined)
This is an app that has been working great for a while, i just attempting to update the libraries and now this is happening. It seems that Immediate.js in rxjs is attempting to use document.createElement which obviously doesn’t work in nativeScript.
***** Fatal JavaScript exception - application has been terminated. *****
Native stack trace:
1 0x107f6f7b4 -[TNSRuntime executeModule:referredBy:]
2 0x103f2b4e1 main
3 0x109afed81 start
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/@suna/quickride-ts-libcore/src/socket/reconnecting.js:3: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/@suna/quickride-ts-libcore/src/socket/driver-updates.js:14:29
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/@suna/quickride-ts-libcore/src/socket/index.js:6:17
64 evaluate@[native code]
65 moduleEvaluation@[native code]
66 @[native code]
67 promiseReactionJob@[native code]
68 require@[native code]
69 anonymous@file:///app/tns_modules/@suna/quickride-ts-libcore/src/index.js:10:17
70 evaluate@[native code]
71 moduleEvaluation@[native code]
72 @[native code]
73 promiseReactionJob@[native code]
74 require@[native code]
75 anonymous@file:///app/app.module.js:7:37
76 evaluate@[native code]
77 moduleEvaluation@[native code]
78 @[native code]
79 promiseReactionJob@[native code]
80 require@[native code]
81 anonymous@file:///app/main.js:8:27
82 evaluate@[native code]
83 moduleEvaluation@[native code]
84 @[native code]
85 promiseReactionJob@[native code]
JavaScript error:
file:///app/tns_modules/rxjs/util/Immediate.js:56:82: JS ERROR TypeError: document.createElement is not a function. (In 'document.createElement('script')', 'document.createElement' is undefined)
About this issue
- Original URL
- State: closed
- Created 7 years ago
- Comments: 18
I fixed this my importing things directly like @anuragd7 mentioned.
ie: instead of this
import {Observable} from 'rxjs';i did:import {Observable} from 'rxjs/Observable';Check if you have imports from rxjs/rx. I solved this issue by removing/ replacing all imports from rxjs/rx.
On 24 Dec 2017 9:02 a.m., “Brian” notifications@github.com wrote:
I managed to solve it by adding an extra condition if checking if createElement exists in document object. I made changes in rxjs’s library immediate.js
On Wed, Jul 25, 2018, 7:21 PM fhackenb notifications@github.com wrote:
Nope, I never solved it. I ended up giving up using appsync with NativeScript. But it looks like they have an angular demo now that may be worth checking out. No idea if it works though https://github.com/aws-samples/aws-mobile-appsync-chat-starter-angular
@TinusJ npm i --save nativescript-ngx-fonticon@4.1.0
@ashrafaa I was running into the same error as you, down to it coming from
nativescript-ngx-fonticonin the call stack. It turns out, the latest version of that package requiresrxjs@>=6.0.0. So, you’ll need to either downgradenativescript-ngx-fonticonor upgraderxjs. See this issue. Note that upgrading rxjs will likely require some migration on your part, as rxjs 6 requires that you import everything from"rxjs".