首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将json重写到文件,以避免针对npm生成的package.json获得“文件末尾没有换行符”的差异

如何将json重写到文件,以避免针对npm生成的package.json获得“文件末尾没有换行符”的差异
EN

Stack Overflow用户
提问于 2018-05-31 11:10:50
回答 1查看 2.4K关注 0票数 4

我有一个nodejs项目。在package.json中几乎没有依赖项

在“脚本”部分,我添加了"preinstall":"node preinstall"

preinstall脚本生成运行时上的依赖项并更新package.json,这样就可以用于实际的npm install调用。

preinstall.js是这样的

代码语言:javascript
复制
const pkg = require('./package.json')
pkg.dependencies['new-package'] = 'latest';
require('fs').writeFileSync('./package.json', JSON.stringify(pkg, null, 2))

package.json中,我得到了一个额外的差异,如下所示

代码语言:javascript
复制
-}
\ No newline at end of file
+}

怎么摆脱这个?在我写完json文件之后,我不想要这个差异。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-16 19:11:20

@RobC在评论中已经提到了,只是把它放在一个实际的答复中:

问题是,JSON.stringify正确地在每一行中添加了换行符,但是在最后一行中没有插入换行符。当写入文件时,它会导致格式错误的文本文件(产生No newline at end of file警告等)。

无论如何,解决方案是手动添加缺少的换行符,方法是替换

代码语言:javascript
复制
JSON.stringify(pkg, null, 2)

使用

代码语言:javascript
复制
JSON.stringify(pkg, null, 2).concat('\n')
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50622958

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档