{"id":6355,"date":"2018-11-26T10:28:12","date_gmt":"2018-11-26T09:28:12","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=6355"},"modified":"2023-09-20T08:51:47","modified_gmt":"2023-09-20T06:51:47","slug":"sharepoint-framework-konfiguracja","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/sharepoint-framework-konfiguracja\/","title":{"rendered":"SharePoint Framework &#8211; konfiguracja"},"content":{"rendered":"\n<p>Obecny trend wskazuje na to, \u017ce coraz wi\u0119cej przedsi\u0119biorstw rezygnuje z w\u0142asnych serwer\u00f3w SharePoint na rzecz us\u0142ugi Office 365. Zmniejszenie odpowiedzialno\u015bci ze strony wewn\u0119trznego dzia\u0142u IT oraz zamiana koszt\u00f3w utrzymania na koszty subskrypcji s\u0105 tylko uzupe\u0142nieniem korzy\u015bci, kt\u00f3re p\u0142yn\u0105 ze stosowania ci\u0105gle rozwijanej i na bie\u017c\u0105co aktualizowanej chmurowej wersji SharePoint.<\/p>\n\n\n\n<p>Aby umo\u017cliwi\u0107 rozbudow\u0119 SharePointa, udost\u0119pniony zosta\u0142 pakiet deweloperski SharePoint Framework &#8211; w skr\u00f3cie zwany SPFx. Jest to zestaw bibliotek, kt\u00f3ry pozwala tworzy\u0107 web party oraz rozszerzenia dzia\u0142aj\u0105ce po stronie klienta. W swojej serii artyku\u0142\u00f3w &#8222;SharePoint Framework&#8221; przedstawi\u0119 jak \u0142atwo przygotowa\u0107 web part nawigacyjny. Z cz\u0119\u015bci pierwszej dowiesz si\u0119 niezb\u0119dnych informacji na temat konfiguracji oraz struktury projektu.<\/p>\n\n\n\n<p>Co b\u0119dzie potrzebne:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>NodeJS,<\/li>\n\n\n\n<li>Edytor np. darmowy Visual Studio Code,<\/li>\n<\/ul>\n\n\n\n<p>Zaczynamy od utworzenia folderu z projektem oraz otwarcia konsoli w danym folderze. Pod has\u0142em konsola w moim wypadku ukryty jest PowerShell. PowerShell mo\u017ce zosta\u0107 w \u0142atwy spos\u00f3b otwarty w VS Code z menu View -&gt; Integrated Terminal.<\/p>\n\n\n\n<p>Wywo\u0142ujemy polecenie yo @microsoft\/sharepoint i odpowiadamy na pytania dialogowe:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><a href=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2018\/07\/1.png\"><img decoding=\"async\" width=\"1024\" height=\"129\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2018\/07\/1-1024x129.png\" alt=\"\" class=\"wp-image-5610\" srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2018\/07\/1-1024x129.png 1024w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2018\/07\/1-300x38.png 300w, https:\/\/sii.pl\/blog\/wp-content\/uploads\/2018\/07\/1.png 1281w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>Na potrzeby artyku\u0142u, web part nazwa\u0142em Navigation i do tej nazwy b\u0119d\u0119 si\u0119 odnosi\u0142.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Konfiguracja oraz struktura projektu<\/h2>\n\n\n\n<p>Prac\u0119 mo\u017cemy rozpocz\u0105\u0107 po kr\u00f3tkim pobieraniu niezb\u0119dnych paczek oraz tworzeniu struktury projektu. W strukturze projekt\u00f3w najbardziej b\u0119d\u0105 interesowa\u0142y nas foldery:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>config \u2013 zawieraj\u0105cy konfiguracj\u0119 projektu:\n<ul class=\"wp-block-list\">\n<li>package-solution.json \u2013 tu ustalimy nazw\u0119 generowanej paczki oraz jej wersj\u0119. Przed ka\u017cdym wgraniem paczki na tenant nale\u017cy podnie\u015b\u0107 wersj\u0119, aby zapobiec problemom z \u0142adowaniem plik\u00f3w \u017ar\u00f3d\u0142owych,<\/li>\n\n\n\n<li>tslint.json \u2013 w tym pliku mo\u017cemy przygotowa\u0107 w\u0142asn\u0105 konfiguracj\u0119 walidacji kodu,<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>src \u2013 kod \u017ar\u00f3d\u0142owy. W podfolderze webparts\/navigation znajduj\u0105 si\u0119 podstawowe pliki naszego web partu.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Konfiguracja web partu<\/h2>\n\n\n\n<p>Zacznijmy od szybkiej konfiguracji web partu. W pliku NavigationWebPart.manifest.json ustawiamy nazw\u0119 web partu, grup\u0119 do kt\u00f3rej ma on nale\u017ce\u0107 (widoczne w klasycznej wersji SharePointa) oraz opis. Ikona web partu mo\u017ce zosta\u0107 wybrana na trzy sposoby:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Ikonka z pakietu <u><a href=\"https:\/\/developer.microsoft.com\/en-us\/fabric#\/styles\/icons\" rel=\"nofollow\" >Office Fabric<\/a><\/u>&nbsp;&#8222;officeFabricIconFontName&#8221;: &#8222;Page&#8221;,<\/li>\n\n\n\n<li>Obrazek zakodowany w base64 \u2013 <u><a href=\"https:\/\/www.base64-image.de\/\" rel=\"nofollow\" >przyk\u0142adowy konwerter proponowany przez Microsoft<\/a><\/u>,<\/li>\n\n\n\n<li>URL do obrazka &#8222;iconImageUrl&#8221;: &#8222;link do obrazka lub kod base64&#8221;.<\/li>\n<\/ul>\n\n\n\n<p>Wy\u015bwietlana ikona b\u0119dzie mie\u0107 rozmiar 40x28px. Nie zalecam stosowania ikony w postaci URL &#8211; spowoduje to utrudnienie utrzymania web parta oraz jego ponownego zastosowania na innym \u015brodowisku.<\/p>\n\n\n\n<p>Je\u017celi wybra\u0142e\u015b\/a\u015b ikon\u0119 w postaci base64, ikona ta nie b\u0119dzie widoczna w workbenchu. \u017beby sprawdzi\u0107 czy ikona poprawnie si\u0119 wy\u015bwietla, nale\u017cy wi\u0119c zainstalowa\u0107 paczk\u0119 na SharePoincie.<\/p>\n\n\n\n<p>Pr\u00f3cz widocznej konfiguracji mo\u017cemy doda\u0107 niewidoczn\u0105 opcj\u0119 &#8222;supportsFullBleed&#8221;: true. Pozwoli to na wy\u015bwietlenie web partu na pe\u0142nej szeroko\u015bci strony, je\u015bli taki layout zosta\u0142 u\u017cyty.<\/p>\n\n\n\n<p>Ostatnim etapem konfiguracji jest sekcja &#8222;properties&#8221;. Tutaj mo\u017cemy utworzy\u0107 zmienne, w kt\u00f3rych przechowywana b\u0119dzie konfiguracja danej instancji web partu:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; gutter: false; title: ; notranslate\" title=\"\">\n{\n\n\"$schema\": \"https:\/\/dev.office.com\/json-schemas\/spfx\/client-side-web-part-manifest.schema.json\",\n\n\"id\": \"4cba7112-aedf-4e1b-bfc8-ff293f3c7d52\",\n\n\"alias\": \"NavigationWebPart\",\n\n\"componentType\": \"WebPart\",\n\n\"version\": \"*\",\n\n\"manifestVersion\": 2,\n\n\"supportsFullBleed\": true,\n\n\"requiresCustomScript\": false,\n\n\"preconfiguredEntries\": &#x5B;{\n\n\"groupId\": \"5c03119e-3074-46fd-976b-c60198311f70\",\n\n\"group\": { \"default\": \"Other\" },\n\n\"title\": { \"default\": \"Navigation\" },\n\n\"description\": { \"default\": \"Universal navigation webpart\" },\n\n\"officeFabricIconFontName\": \"Page\",\n\n\"properties\": {\n\n\"items\": \"\"\n\n}\n\n}]\n\n}\n<\/pre><\/div>\n\n\n<h2 class=\"wp-block-heading\">Podsumowanie<\/h2>\n\n\n\n<p>W tej cz\u0119\u015bci swojej serii przedstawi\u0142em podstawowe informacje dotycz\u0105ce konfiguracji oraz struktury projektu. Ta wiedza stanowi niezb\u0119dnik do dalszej pracy. Z tego miejsca zapraszam Ci\u0119 do cz\u0119\u015bci drugiej &#8222;<a href=\"https:\/\/sii.pl\/blog\/sharepoint-framework-przykladowy-web-part\/?category=development-na-twardo&amp;tag=sharepoint%2Coffice-365&amp;preview_id=6344&amp;preview_nonce=01a644f6e3&amp;preview=true&amp;_thumbnail_id=6369\" target=\"_blank\" rel=\"noopener\" class=\"ek-link\">SharePoint Framework \u2013 przyk\u0142adowy web part<\/a>&#8222;, w kt\u00f3rej porusz\u0119 tematyk\u0119 kodu oraz przedstawi\u0119 gar\u015b\u0107 porad dotycz\u0105cych SPFx.<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;6355&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;2&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;11&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;5\\\/5 ( votes: 2)&quot;,&quot;size&quot;:&quot;18&quot;,&quot;title&quot;:&quot;SharePoint Framework - konfiguracja&quot;,&quot;width&quot;:&quot;139.5&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} ( {votes}: {count})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 139.5px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 11px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 18px; height: 18px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 14.4px;\">\n            5\/5 ( votes: 2)    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Obecny trend wskazuje na to, \u017ce coraz wi\u0119cej przedsi\u0119biorstw rezygnuje z w\u0142asnych serwer\u00f3w SharePoint na rzecz us\u0142ugi Office 365. Zmniejszenie &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/sharepoint-framework-konfiguracja\/\">Continued<\/a><\/p>\n","protected":false},"author":18,"featured_media":6361,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1314],"tags":[56,497],"class_list":["post-6355","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development-na-twardo","tag-sharepoint","tag-office-365"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2018\/11\/cloud.jpeg","category_names":["Development na twardo"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/6355"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/comments?post=6355"}],"version-history":[{"count":2,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/6355\/revisions"}],"predecessor-version":[{"id":24311,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/posts\/6355\/revisions\/24311"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media\/6361"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/media?parent=6355"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/categories?post=6355"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/wp-json\/wp\/v2\/tags?post=6355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}