使用 Nodejs 的 fs.writeFile Api 写文件是很常见的操作。 而写文件过程中换行也是很常见的,但是如何换行这个问题需要注意,因为不同的操作系统换行符是不一样的。
如何换行
操作系统的换行符不一样,其中 Windows 系统是 rn
其他系统是 n
。
因此,如果需要写出来的文件适用于各个系统,那么写文件的时候就需要判断。
不过好在 Nodejs 提供了换行符常量 os.EOL
。
用法如下:
const os = require('os')
let str = 'abc' os.EOL;
fs.writeFileSync(sitemapFile, str)
一个坑
之前不知道这个 API,于是手写了一段代码
代码语言:javascript复制let str = 'abcr';
fs.writeFileSync(sitemapFile, str)
这段代码看起来没啥问题,能正常写入文件,使用 vsCode 编辑器也能正常打开。 但是,使用 cat 命令、tail 命令都无法读取文件,使用 fs.readFileSync 也无法正常读取。
所以,为了避免不必要的麻烦,使用 Nodejs 写文件的时候,换行符还是建议使用 os.EOL
常量。