mbi*_*ras 3 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")
// Usage: foo [options]
//
// v<interpolate here>
//
// Options:
// -h, --help Show some help
// 1.2.0
Run Code Online (Sandbox Code Playgroud)
如何在heredoc中插值v<interpolate here>?我的目标是替换<interpolate here>为1.2.0。
我也更喜欢使用一个弯曲的heredoc。例如,现在我必须写:
if (true) {
var help = `foo bar baz
cats and dogs
`
}
Run Code Online (Sandbox Code Playgroud)
但我宁愿这样写:
if (true) {
var help = `foo bar baz
cats and dogs
`
}
Run Code Online (Sandbox Code Playgroud)
如何创建不尊重第一个换行符的Heredoc?例如,现在我必须写:
var help = `Usage: foo [options]
...
Run Code Online (Sandbox Code Playgroud)
但我宁愿这样写:
var help = `
Usage: foo [options]
...
Run Code Online (Sandbox Code Playgroud)
最后,heredoc文档在哪里?
在Node中,一般没有heredocs,特别是没有杂乱的heredocs,因此没有关于它的文档。
ES6中有模板文字:
它们在Node 6.x +中可用-请参阅兼容性列表:
您可以使用一些技巧来使缩进保持所需的样子,例如:
删除前4个字符:
let x = `
abc
def
`.split('\n').map(l => l.slice(4)).join('\n');
console.log(`"${x}"`);
Run Code Online (Sandbox Code Playgroud)
删除前4个字符和空行:
let x = `
abc
def
`.split('\n').map(l => l.slice(4)).filter(l => l).join('\n');
console.log(`"${x}"`);
Run Code Online (Sandbox Code Playgroud)
使用正则表达式替换从行首删除所有空格:
let x = `
abc
def
`.replace(/^\s+/igm, '');
console.log(`"${x}"`);
Run Code Online (Sandbox Code Playgroud)
您可以${ expression }像这样插入模板文字中的任何JavaScript表达式:
let x = `2 + 2 = ${2 + 2}`;
console.log(`"${x}"`);
Run Code Online (Sandbox Code Playgroud)
它不仅适用于变量,而且如果需要,表达式当然可以是单个变量。
| 归档时间: |
|
| 查看次数: |
1846 次 |
| 最近记录: |