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

Most upvoted comments

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 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)

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/NativeScript/nativescript-angular/issues/1137, or mute the thread https://github.com/notifications/unsubscribe-auth/AE2Pttq7AEZsaL6cUaxWt1FxJFFIMN9dks5tDcXUgaJpZM4RL0qi .

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

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/NativeScript/nativescript-angular/issues/1137#issuecomment-407771537, or mute the thread https://github.com/notifications/unsubscribe-auth/ACYjwa72feUxazpXCfUS3G0Gs6flzFu4ks5uKH7bgaJpZM4RL0qi .

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-fonticon in the call stack. It turns out, the latest version of that package requires rxjs@>=6.0.0. So, you’ll need to either downgrade nativescript-ngx-fonticon or upgrade rxjs. 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".