Hello!
Is there any way to use custom library that would be accessible from all widgets in Experience Builder? I'd imagine something similar to folder /libs in Web AppBuilder.
Thanks,
Matěj.
I assume you are using a third party lib, so you can just load the lib by using a CDN URL like https://abc.com/...., or you can download the lib and put it in the app and load it by using “lib/abc.js”. However, if you are using your own lib, this is a little complex because you need to build your lib as an entry using webpack first before you can load it.
发件人: Matej Kutik <geonet@esri.com>
发送时间: 2020年4月10日 21:37
收件人: Junshan Liu <junshan_liu@esri.com>
主题: Re: - Re: Custom libraries
GeoNet, The Esri Community | GIS and Geospatial Professional Community <https://community.esri.com/?et=watches.email.thread>
Re: Custom libraries
reply from Matej Kutik<https://community.esri.com/people/kutikmatej?et=watches.email.thread> in ArcGIS Experience Builder - View the full discussion<https://community.esri.com/message/921471-re-custom-libraries?commentID=921471&et=watches.email.thread#comment-921471>
Thanks for the reply. Unfortunately, I don't think that solves my issue.
Let's say I want use this simple custom library:
<SPAN class="keyword token">export</SPAN> <SPAN class="keyword token">default</SPAN> <SPAN class="keyword token">class</SPAN> <SPAN class="token class-name">TestLib</SPAN> <SPAN class="punctuation token">{</SPAN> <SPAN class="token function">constructor</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN> <SPAN class="keyword token">private</SPAN> <SPAN class="keyword token">static</SPAN> _instance<SPAN class="punctuation token">:</SPAN> TestLib<SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">private</SPAN> _list<SPAN class="punctuation token">:</SPAN> __esri<SPAN class="punctuation token">.</SPAN>Graphic<SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">public</SPAN> <SPAN class="keyword token">get</SPAN> <SPAN class="token function">list</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN> __esri<SPAN class="punctuation token">.</SPAN>Graphic<SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">]</SPAN> <SPAN class="punctuation token">{</SPAN> <SPAN class="keyword token">return</SPAN> <SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>_list<SPAN class="punctuation token">;</SPAN> <SPAN class="punctuation token">}</SPAN> <SPAN class="keyword token">public</SPAN> <SPAN class="token function">append</SPAN><SPAN class="punctuation token">(</SPAN>item<SPAN class="punctuation token">:</SPAN> __esri<SPAN class="punctuation token">.</SPAN>Graphic<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="keyword token">void</SPAN> <SPAN class="punctuation token">{</SPAN> <SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>_list<SPAN class="punctuation token">.</SPAN><SPAN class="token function">push</SPAN><SPAN class="punctuation token">(</SPAN>item<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="punctuation token">}</SPAN> <SPAN class="keyword token">public</SPAN> <SPAN class="keyword token">static</SPAN> <SPAN class="token function">getInstance</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">:</SPAN> TestLib <SPAN class="punctuation token">{</SPAN> <SPAN class="keyword token">if</SPAN> <SPAN class="punctuation token">(</SPAN><SPAN class="operator token">!</SPAN><SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>_instance<SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>_instance <SPAN class="operator token">=</SPAN> <SPAN class="keyword token">new</SPAN> <SPAN class="token class-name">TestLib</SPAN><SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN> <SPAN class="keyword token">return</SPAN> <SPAN class="keyword token">this</SPAN><SPAN class="punctuation token">.</SPAN>_instance<SPAN class="punctuation token">;</SPAN> <SPAN class="punctuation token">}</SPAN> <SPAN class="punctuation token">}</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
In Web AppBuilder all I need to do is place the file in the /libs folder, and access it from widgets using:
<SPAN class="keyword token">import</SPAN> testLib <SPAN class="keyword token">from</SPAN> <SPAN class="string token">"libs/testLib"</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN></SPAN>
I there some similar way in Experience Builder?
Thanks.
There is a "dependency" property in widget manifest.json, you can put your lib url here. The dependent lib will be loaded before when widget start load.
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registriere ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.