我刚刚在ES6模板文字中发现了这样做:
const template = `npm install \
&& npm start`;
将导致此npm install && npm start
。这是因为一行末尾的\
是"逃避"新线。
我对此感到非常恼火。
在bash和其他内容中,您可以使用\
作为行继续符。所以你真的希望得到的字符串是:
npm install \
&& npm start
有没有办法解决这个问题?
答案 0 :(得分:4)
\
是字符串和模板文字中的转义字符。没有办法解决这个问题。
但是,您可以使用String.raw
标记的模板。 String.raw
忽略转义序列并按字面意思返回它们。
const template = String.raw`npm install \
&& npm start`;
console.log(template);
但是,如果不进行修改,您仍然无法复制每个 bash命令。 Bash允许您通过${variable}
语法引用变量。 ${...}
在模板文字中是特殊的,这就是替换的执行方式。所以那些必须被转义,但这只适用于普通的模板文字或字符串。
答案 1 :(得分:1)
这给了我想要的结果
const template = `npm install \\
&& npm start`;
我对此并不满意。我将使用ES6模板文字生成Dockerfile,package.json等文件
我希望我可以直接将文件内容粘贴到文字中,无需修改即可保存插值位。
但我立即遇到了这个案子!