Capita ogni tanto che lanciando il comando gulp bundle --ship build la build non riesca perchè qualche pacchetto risulta outdated. Nel mio caso l'errore era "Browserslist: caniuse-lite is outdated. Please run next command npm update caniuse-lite browserslist". In realtà il messaggio è fuorviante e spesso lanciare semplicemente npm update con il nome del pacchetto da aggiornare non risolve niente (questo a partire da npm@2.6.1, vedi qui). Il trucco consiste nell'utilizzare il parametro depth per aggiornare le dipendenza anche in pacchetti annidati molto in profondità nella gerarchia del progetto. Nel mio caso ho lanciato
npm update --depth 10 caniuse-lite browserslist e ho risolto.
venerdì 9 agosto 2019
martedì 7 agosto 2018
SPFX The property '__metadata' does not exist on type 'SP.Social.SocialActorInfo'. Make sure to only use property names that are defined by the type.
L'errore compare nelle chiamate effettuate con SPHttpClient.post e oltre a SP.Social.SocialActorInfo può riguardare qualunque altro tipo Sharepoint (SP. ecc.). La causa dell'errore è da ricercarsi nel fatto che SPHttpClient appende sempre un header odata-version: 4.0 . La soluzione è fare l'override dell'header usando un oggetto ISPHttpClientOptions e fare la chiamata post utilizzando tale oggetto come parametro (vedi questo articolo):
const options: ISPHttpClientOptions = {
headers: {'odata-version':'3.0'},
body: {'query': {'__metadata': ...
};
lunedì 11 giugno 2018
Fix dell'errore Error occurred in deployment step 'Retract Solution': XXXXXX cannot be deserialized because it does not have a public default constructor
L'errore in questione si ottiene facendo il deploy di una soluzione in cui non è specificato un costruttore pubblico vuoto. Finora mi si è verificato solo sui Timer Jobs. Purtroppo il fix non è semplice. Vanno seguiti i seguenti passi:
- Sistemare il codice aggiungendo il costruttore mancante
- Fare il deploy in GAC dell'assembly così ottenuto, utilizzando gacutil
- IISRESET
- Eseguire il Retract della solution da Central Administration o con powershell
E qui una dettagliata guida su come scrivere un timer Job (è per SP 2010, ma va sempre bene :-))
mercoledì 2 maggio 2018
String.Format in Javascript
Un'utile funzione Javascript per implementare l'equivalente della String.Format del C#
String.prototype.format = function () {
var str = this;
for (var i = 0; i < arguments.length; i++) {
var reg = new RegExp("\\{" + i + "\\}", "gm");
str = str.replace(reg, arguments[i]);
}
return str;
}
String.prototype.format = function () {
var str = this;
for (var i = 0; i < arguments.length; i++) {
var reg = new RegExp("\\{" + i + "\\}", "gm");
str = str.replace(reg, arguments[i]);
}
return str;
}
martedì 6 marzo 2018
Accesso _spPageContextInfo details in SharePoint Framework
Sono informazioni legacy, ma sempre utili perchè non c'è l'equivalente diretto in SPFX.
L'articolo completo è qui
Esempio di utilizzo
L'articolo completo è qui
Esempio di utilizzo
Alcune delle proprietà disponibili
martedì 27 febbraio 2018
$.noConflict();
Appunti veloci su come importare librerie javascript esterne
Facciamo un esempio con una libreria ipotetica che chiamiamo jstest.
- npm install @types/jstest, questo è il modo canonico
- se non esistono i types (cioè non è stato definito un file .d.ts con la dichiarazione del modulo), allora:
- Cercare su DefinitelyTyped qualcosa di equivalente
- Editare o creare un file .d.ts con Closure o a mano
- Utilizzare SPComponentLoader.loadScript e fare il cast ad 'any' prima di utilizzare le funzioni della libreria
Iscriviti a:
Post (Atom)