편집 :이 유틸리티를 사용하여 작은 NPM 모듈을 만들었습니다. 그것은 웹과 노드에서 작동하며 훨씬 강력하기 때문에 아래 답변의 코드보다 강력하게 권장합니다. 또한으로 수동으로 입력하면 결과에 줄 바꿈을 유지할 수 있으며 \n
이미 다른 것에 템플릿 리터럴 태그를 사용하는 경우 기능을 제공합니다. https://github.com/iansan5653/compress-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;
}
그런 다음 줄 바꿈하려는 템플릿 리터럴에 태그를 지정할 수 있습니다.
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.`;
미래 개발자가 태그가 지정된 템플릿 구문에 익숙하지 않거나 설명 함수 이름을 사용하지 않는 경우 예상치 못한 동작이 발생할 수 있지만 현재로서는 가장 깨끗한 솔루션 인 것 같습니다.