Node.js 如何在Windows上使用LF而不是CRLF编写文件?
我们有一个作为预安装脚本运行的脚本。它使用fs.writeFile编写生成的配置文件Node.js 如何在Windows上使用LF而不是CRLF编写文件?,node.js,Node.js,我们有一个作为预安装脚本运行的脚本。它使用fs.writeFile编写生成的配置文件 writeFile(configFilePath, configFileContents, (e) => { // ... do some error handling } 出于某种原因,它在Windows上使用CRLF行结尾,并在git中创建差异,尽管文件没有更改 我试着做一些有用的事情 .replace(/\r\n/gm, "\n"); 在configFileConte
writeFile(configFilePath, configFileContents, (e) => {
// ... do some error handling
}
出于某种原因,它在Windows上使用CRLF行结尾,并在git中创建差异,尽管文件没有更改
我试着做一些有用的事情
.replace(/\r\n/gm, "\n");
在configFileContents
上,但仍使用Windows行结尾
configFileContents
由以下人员创建:
const configFileContents = JSON.stringify({
foo: bar,
baz, foo,
// ...
}, null, 2);
有没有办法告诉Node使用Linux操作系统?您只需执行以下操作:
。替换(/\r\n/g,“\n”)
另外,
/\r\n/gm
regexp不正确,因为您已经告诉regexp引擎通过提供m
/多行选项来查找新行。。。这就是为什么它不允许表达式工作。只要使用g
就行了,如果你真的不想使用RegExp我试了一下你的代码,得到了LF
行尾,这很奇怪。我们只需创建一个对象,用上面的代码将其字符串化,然后使用Windows行结尾保存它,true
或false
?为什么你说它在Windows上使用CRLF行结尾
我犯了一个错误,我的错。似乎有人用Windows行结尾推送了一些东西,脚本用Linux行结尾生成了它。我看错了差别,以为是我的机器干的。请你说清楚一点好吗。。我不明白你想说的话。'\r\n abc\r\n.replace(/\r\n/gm,“\n”)。includes('\r')
是false
,'\r\n abc\r\n.replace(“\r\n”,“\n”)。includes('\r')
是真的
。您的答案是无法删除所有\r
嗯,有一个选项我不太清楚..正在使用require('os')。EOL
。我认为这不应该有帮助,但值得一试。。。如果该文件由使用CRLF换行符而不是LF的任何编辑器编辑,则通常会发生此行为。如果您使用的是VSCode,则可以从底部工具栏中进行更改。这将允许在LF模式下编辑文件。我犯了一个错误,我的坏。似乎有人用Windows行结尾推送了一些东西,脚本用Linux行结尾生成了它。我看错了差异,并认为是我的机器做的。错误发生了,不用担心