SharePoint Framework 向web部件中新增外部庫
在進行開發的時候,你很可能會想要引用一些公開的JavaScript庫到你的專案中,本文將會介紹如何打包和共享這些庫。
打包指令碼
預設情況下,web部件包會自動包含專案所依賴的庫。這意味著庫會隨著你的web部件一起被部署。這對於非公用的規模較小的庫來說是比較有益的。
例子
將字串驗證庫validator包加入到web部件。從npm下載validator包,輸入命令:
npm install validator --save
注意:由於你在使用TypeScript,它是JavaScript的超集,所以在編譯的時候它們仍然會轉換成JavaScript,你可以通過npm命令搜尋並找到型別:npm install @types/{package} --save
在web部件所在資料夾建立一個檔案validator.d.ts然後新增如下程式碼:
declare module "validator" {
export function isEmail(email: string): boolean;
export function isAscii(text: string): boolean;
}
注意,一些庫是沒有型別的,我們假定本文示例中引用的Validator庫是沒有的(事實上它有),在這種情況下你需要為該庫定義你自己的型別定義檔案.d.ts,也就是上述程式碼。在你的web部件檔案中,引用該型別,用如下程式碼:
然後就可以在你的web部件程式碼中使用了,例如:import * as validator from 'validator';
validator.isEmail('[email protected]');
在多個web部件工程共享庫你的客戶端解決方案可能會包含多個web部件。這些web部件可能需要引入或共享相同的庫。在這種情況下,應該放棄捆綁庫的方式,而是在一個單獨的JavaScript檔案中包含它來提高效能,尤其對於大型的庫來說更是必要的。
例子
在本例中,讓我們演示在一個單獨的包中共享marked包(一個Markdown編譯器)。首先下載marked包:npm install marked --save,然後下載型別:npm install @types/marked --save。
開啟config/config.json檔案進行編輯,向externals對映新增一條新內容。這將會告訴打包器將它放到一個單獨的檔案,以避免將它直接打到包中:
"marked": "node_modules/marked/marked.min.js"
在你的web部件中新增引入marked庫的宣告:import * as marked from 'marked';
在你的web部件專案中使用該庫:console.log(marked('I am using __markdown__.'));
從CDN載入指令碼如果不通過npm包載入庫,你還可以從CDN載入。這需要修改config.json檔案以配置為從CDN URL去載入庫。
例子
本例中我們演示從CDN載入jQuery。你不需要安裝npm包,但是仍然需要安裝型別。安裝jQuery型別的命令如下:
npm install --save @types/jquery
更新config目錄中的config.json檔案來從CDN載入jQuery,在externals部分新增一條新項:
"jquery": "https://code.jquery.com/jquery-3.1.0.min.js"
在你的web部件中引入jQuery:import * as $ from 'jquery';
在你的web部件中使用jQueryalert( $('#foo').val() );
載入SharePoint JSOM注意下面介紹的方式並不適用於傳統的SharePoint頁面,因為JSOM已經載入了。如果你需要讓你的web部件能在傳統和現代頁面同時工作,你需要首先檢查SharePoint JSOM是否可用並已經載入了。
安裝JSOM依賴的Microsoft Ajax型別:
npm install @types/microsoft-ajax --save
安裝JSOM的型別:npm install @types/sharepoint --save
在config.json中新增以下內容:{
"sp-init": {
"path": "https://CONTOSO.sharepoint.com/_layouts/15/init.js",
"globalName": "$_global_init"
},
"microsoft-ajax": {
"path": "https://CONTOSO.sharepoint.com/_layouts/15/MicrosoftAjax.js",
"globalName": "Sys",
"globalDependencies": [ "sp-init" ]
},
"sp-runtime": {
"path": "https://CONTOSO.sharepoint.com/_layouts/15/SP.Runtime.js",
"globalName": "SP",
"globalDependencies": [ "microsoft-ajax" ]
},
"sharepoint": {
"path": "https://CONTOSO.sharepoint.com/_layouts/15/SP.js",
"globalName": "SP",
"globalDependencies": [ "sp-runtime" ]
}
}
在你的web部件中新增require宣告:require('sp-init');
require('microsoft-ajax');
require('sp-runtime');
require('sharepoint');
載入國際化資源
在config.json檔案中有一段對映叫做localizedResources,可以通過它定義如何載入國際化資源。在這部分設定的路徑為到lib資料夾的相對路徑,注意不要以/開頭。
在本例中,我們有個名為src/strings/的資料夾,裡面有幾個JavaScript檔案如en-us.js、fr-fr.js、de-de.js。由於每個檔案都需要通過模組載入器載入,它們必須包含一個公用的JS包裝器。例如在en-us.js檔案中:
define([], function() {
return {
"PropertyPaneDescription": "Description",
"BasicGroupName": "Group Name",
"DescriptionFieldLabel": "Description Field"
}
});
編輯config.json檔案,向localizedResources中新增一條。{locale}為資原始檔名的佔位符。{
"strings": "strings/{locale}.js"
}
本例中假設你有一個叫做MyStrings.d.ts的檔案,向其中新增關於你的設定的型別:declare interface IStrings {
webpartTitle: string;
initialPrompt: string;
exitPrompt: string;
}
declare module 'mystrings' {
const strings: IStrings;
export = strings;
}
接下來在專案中新增import宣告:import * as strings from 'mystrings';
這樣就可以在專案中使用 strings了:本篇就介紹到這裡。
相關推薦
SharePoint Framework 向web部件中新增外部庫
在進行開發的時候,你很可能會想要引用一些公開的JavaScript庫到你的專案中,本文將會介紹如何打包和共享這些庫。打包指令碼預設情況下,web部件包會自動包含專案所依賴的庫。這意味著庫會隨著你的web部件一起被部署。這對於非公用的規模較小的庫來說是比較有益的。例子將字串驗證
向maven web專案中新增spring mvc依賴的jar包
使用maven進行專案管理的優勢之一就是maven可以幫我們管理專案建設中所使用的jar包,我們只需要在maven專案下的pox.xml中向dependencies下新增所需要的jar包資訊(包括groupId、artifactid、version)即可,這
ASP.Net Web.config中引用外部config文件
pset lin AD 配置 utf tostring pan OS add Web.config file: <?xml version="1.0" encoding="utf-8"?><configuration><appSettings
『PHP學習筆記』系列八:向MySQL資料庫中新增資料
資料表結構: 資料表原有資料: 向MySQL資料庫寫入資料: INSERT INTO 語句通常用於向 MySQL 表新增新的記錄: INSERT INTO table_name (column1, column2, column3,...) VALUES
向班級集合中新增學生資訊
實現效果: 知識運用: System.Collections名稱空間下的ArrayList集合類的Add()方法 使用了 DataGridView 控制元件 實現程式碼: private void Form1_Load(object
如何在web專案中新增redis快取
redis 是什麼?這個應該是你做一下工作的前提,不明白的可以百科一下。如果你大概明白了redis的工作原理。那麼請繼續往下看: 一。首先你需要明白,為什麼要在你的專案中使用redis快取? 現在很多應用程式要儲存結構簡單更新頻繁的資料,在我看來,字典表裡的資料就是儲存結構簡單且更新頻繁的資料,因
在.net core web網站中新增webSocket支援
注意:前置條件,作業系統 windows 8 以上,IIS Express 8.0 以上. 第1步:在Startup.cs檔案的頭部新增如下引用: using System.Net.WebSockets; using System.Threading; using System.Thr
web專案中新增圖示(unicode引用方式)
在web前端開發時,我們可能會為了美觀新增一些圖示,類似下圖這種: 先推薦一個很不錯的圖示素材庫阿里巴巴向量圖示庫 想到新增圖示我們首先想到是用<img>標籤,但這種方式使用起來不是很靈
向可變陣列中新增元素崩潰。。。
.h 屬性: @property (copy,nonatomic) NSMutableArray *thingArrayIssue; @property (copy,nonatomic) NSMutableArray *siteArrayIssue; @property (
在web專案中新增定時器
在JAVA專案中常常需要程式定時自動執行一些操作,比如快取中資料的更新等等,那麼這個時候就需要用到定時器去定時執行任務。 廢話不說了,直接上專案吧。 首先建立一個監聽器,在監聽器中加入Util包中的定時任務 package Listener; import java.uti
sharepoint 2010 如何在列表中新增功能選單操作項
在做知識庫文件管理模組中,有一個需求,就是想要在自定義列表當中,增加一個,我的收藏功能。按照sharepoint預設的列表來做,我們可以在列表的標題欄位中,增加一個功能選單項,叫我的收藏.如下圖。 點選收藏,彈出一個提示框,點選確定,我們把這個紀錄新增到收藏記錄表。 1
向config.xml中新增一個配置項
1. 在config.xml中新增一項(路徑:frameworks/base/core/res/res/values/) 如: <bool name="config_myValue">true</bool> 2. 在 frameworks/base/
向原有表中新增不為空列(oracle為例)
在學習工作中,我們會遇到向一些已經使用過程中的表中新增新欄位,而且不允許為空。 這裡以某個表為例: alter table sys_org add (Is_bottom_gain char(1) null) ; alter table sys_org add (Is_b
SQL Server 向資料庫表中新增主鍵列
SQL Server 資料庫,向已設定主鍵的資料庫表中插入新一列,並設為主鍵。 首先從基礎知識開始看, 建表: create table 表名
ROS導航-向cost-map中新增超聲波障礙圖層
兩種思路: 1.將超聲波反饋資訊作為一個新的layer新增到cost-map當中; 2.將超聲波資料(ros_msgs/Range)轉換為move_base包需要的輸入格式(LaserScan或者P
[面試] C++ STL(一)—— 向一個vector中新增N個元素,平均的新增的效能是?
考慮如下的程式碼輸出: int N = 100; vector<int> v; set<int> s; for (int i = 0; i < N; ++i) { s.insert(v.capacity());
activiti學習--13:組任務分配方式1直接方式+查詢正在執行的任務辦理人表+查詢歷史任務的辦理人表+拾取任務+將個人任務回退到組任務+向組任務中新增/刪除成員
組任務及三種分配方式: 1:在taskProcess.bpmn中直接寫 candidate-users=“a,b,c,d” 2:在taskProcess.bpmn中寫 candidate-users =“#{userIDs}”,變數的值要是S
Intellij IDEA在maven專案中新增外部Jar包執行
一. 問題概述 我們知道Intellij IDEA是非常好用的Java語言開發的整合環境。提供了非常多實用的功能,包括了智慧程式碼助手、程式碼自動提示、程式碼重構、各種外掛等,當然也集成了maven 正常情況下,我們建立maven專案時,相關的jar包會自動匯入,當然我們也可以通過IDEA右側的maven工具
在VS中新增lib庫的三種方法
在VS中新增lib庫的三種方法 注意: 1、每種方法也要複製相應的DLL檔案到相應目錄,或者設定DLL目錄的位置,具體方法為:"Properties" -> "Configuration Properties" -> "Deb
QT新增外部庫FFmpeg
關於QT新增外部庫這,我新增的是關於FFmpeg的庫。結果出現了問題特此寫下這篇日誌。 1.首先點選你的工程檔名->然後右鍵->選擇新增庫。 2.然後會彈出來一個如下圖的選擇視窗,因為FFmpeg是外部庫所以這裡選擇外部庫下一步。 3.然後會出現