Javascript 当存储在对象中时,如何从模板文本中删除空白?
我正在用node创建一个样板项目 最基本的是,当我运行Javascript 当存储在对象中时,如何从模板文本中删除空白?,javascript,template-literals,Javascript,Template Literals,我正在用node创建一个样板项目 最基本的是,当我运行node create.js projectName时,我想创建一个包含大量资产的项目文件夹 这是一段代码: function data(){ return { 'index.html': `<!DOCTYPE html> <html lang="en"> <link rel="stylesheet" type=
node create.js projectName
时,我想创建一个包含大量资产的项目文件夹
这是一段代码:
function data(){
return {
'index.html': `<!DOCTYPE html>
<html lang="en">
<link rel="stylesheet" type="text/css" media="screen" href="css/main.css" />
...
<body> <script src="myscripts/main.js"></script> </body>
</html>`,
}
}
我删除了很多不相关的代码,但生成的index.html
中的点如下所示
<!DOCTYPE html>
<html lang="en">
...
<body> <script src="myscripts/main.js"></script> </body>
</html>
...
如何删除第2-5行开头的空白,而不“丑化”我正在
数据函数中写入的对象?您可以使用正则表达式删除行开头的空白
fs.writeFileSync(`${p[0]}/index.html`, data()['index.html'].replace(/^\s+/gm, '');
<代码> M< /Cult>标志使^ /Cord>匹配输入字符串中间的换行符,而不是字符串的开头。
另一个选项是在模板文本中使用所需的缩进
function data(){
return {
'index.html': `
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" type="text/css" media="screen" href="css/main.css" />
...
</head>
<body> <script src="myscripts/main.js"></script> </body>
</html>`,
}
}
函数数据(){
返回{
'index.html':`
...
`,
}
}
这看起来不像是“取消”它。试试这个
function replace(str) {
return str.replace(/^([ ]*)/gim, "");
}
更像是这样。谢谢,有没有办法保留一些缩进?如果您看看我刚才添加的内容,例如在
标记下,您将有一个到样式表的链接,该链接将缩进/嵌套。如果你想让缩进与HTML标记嵌套级别相匹配,那就太复杂了。为什么不首先将所需的嵌套放在模板文本中?为什么你认为“丑化”它,因为它在代码中看起来是正确的。是的,这就是我最终要做的,但是我只是认为我可以在保持物体看起来“干净”的同时得到这种效果。
function replace(str) {
return str.replace(/^([ ]*)/gim, "");
}