EDIT : ho creato un piccolo modulo NPM con questa utility. Funziona sul web e in Node e lo consiglio vivamente sopra il codice nella mia risposta di seguito in quanto è molto più robusto. Permette anche di preservare le nuove righe nel risultato se le inserisci manualmente come \n
e fornisce funzioni per quando usi già i tag letterali del modello per qualcos'altro: https://github.com/iansan5653/compress-tag
So che sono in ritardo per rispondere qui, ma la risposta accettata ha ancora lo svantaggio di non consentire rientri dopo l'interruzione di riga, il che significa che non è ancora possibile scrivere un codice molto bello semplicemente sfuggendo a nuove righe.
Invece, perché non utilizzare una funzione letterale modello con tag ?
function noWhiteSpace(strings, ...placeholders) {
// Build the string as normal, combining all the strings and placeholders:
let withSpace = strings.reduce((result, string, i) => (result + placeholders[i - 1] + string));
let withoutSpace = withSpace.replace(/\s\s+/g, ' ');
return withoutSpace;
}
Quindi puoi semplicemente taggare qualsiasi modello letterale in cui vuoi avere interruzioni di riga:
let myString = noWhiteSpace`This is a really long string, that needs to wrap over
several lines. With a normal template literal you can't do that, but you can
use a template literal tag to allow line breaks and indents.`;
Ciò ha lo svantaggio di avere probabilmente comportamenti imprevisti se uno sviluppatore futuro non è abituato alla sintassi del modello con tag o se non si utilizza un nome di funzione descrittivo, ma per ora sembra la soluzione più pulita.