Javascript Node.js中的Heredoc用法
我有以下Node.js代码和输出:Javascript Node.js中的Heredoc用法,javascript,node.js,Javascript,Node.js,我有以下Node.js代码和输出: var help = `Usage: foo [options] v<interpolate here> Options: -h, --help Show some help ` process.stdout.write(help) var packageDotJson = require('./package.json'); process.stdout.write(packageDotJson.version + "\n")
var help = `Usage: foo [options]
v<interpolate here>
Options:
-h, --help Show some help
`
process.stdout.write(help)
var packageDotJson = require('./package.json');
process.stdout.write(packageDotJson.version + "\n")
// Usage: foo [options]
//
// v<interpolate here>
//
// Options:
// -h, --help Show some help
// 1.2.0
但我宁愿写:
if (true) {
var help = `foo bar baz
cats and dogs
`
}
var help = `
Usage: foo [options]
...
我怎样才能创建一个不尊重第一个换行符的heredoc?例如,现在我必须写:
if (true) {
var help = `foo bar baz
cats and dogs
`
}
var help = `Usage: foo [options]
...
但我宁愿写:
if (true) {
var help = `foo bar baz
cats and dogs
`
}
var help = `
Usage: foo [options]
...
最后,heredoc文档在哪里?Heredocs
在节点中,一般并没有遗传,特别是弯曲的遗传,所以并没有关于它的文档
模板文本
ES6中有模板文本:
let x = `
abc
def
`.split('\n').map(l => l.slice(4)).join('\n');
console.log(`"${x}"`);
删除前4个字符和空行:
let x = `
abc
def
`.split('\n').map(l => l.slice(4)).filter(l => l).join('\n');
console.log(`"${x}"`);
使用正则表达式替换删除行开头的所有空格:
let x = `
abc
def
`.replace(/^\s+/igm, '');
console.log(`"${x}"`);
插值
您可以使用${expression}
在模板文本中插入任何JavaScript表达式,如下所示:
let x = `2 + 2 = ${2 + 2}`;
console.log(`"${x}"`);
它不仅适用于变量,当然,如果需要,表达式可以是单个变量