EDIT : Saya telah membuat modul NPM kecil dengan utilitas ini. Ini berfungsi di web dan di Node dan saya sangat merekomendasikannya melalui kode dalam jawaban saya di bawah ini karena jauh lebih kuat. Ini juga memungkinkan untuk mempertahankan baris baru dalam hasil jika Anda memasukkannya secara manual sebagai \n
, dan menyediakan fungsi ketika Anda sudah menggunakan tag literal template untuk sesuatu yang lain: https://github.com/iansan5653/compress-tag
Saya tahu saya terlambat menjawab di sini, tetapi jawaban yang diterima masih memiliki kelemahan yaitu tidak mengizinkan indentasi setelah jeda baris, yang berarti Anda masih tidak dapat menulis kode yang tampak sangat bagus hanya dengan keluar dari baris baru.
Sebaliknya, mengapa tidak menggunakan fungsi literal template yang diberi tag ?
function noWhiteSpace(strings, ...placeholders) {
let withSpace = strings.reduce((result, string, i) => (result + placeholders[i - 1] + string));
let withoutSpace = withSpace.replace(/\s\s+/g, ' ');
return withoutSpace;
}
Kemudian Anda cukup memberi tag literal template apa pun yang Anda inginkan untuk memiliki jeda baris:
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.`;
Ini memang memiliki kelemahan karena mungkin memiliki perilaku yang tidak terduga jika pengembang masa depan tidak terbiasa dengan sintaks template yang diberi tag atau jika Anda tidak menggunakan nama fungsi deskriptif, tetapi rasanya seperti solusi terbersih untuk saat ini.