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.
Membros conectados podem postar, seguir atualizações e mais. Novo aqui? Registre uma conta gratuita.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.