关于javascript:npm依赖关系不在package.json中 – 由于缺少评论?

npm dependencies not in package.json - due to missing comments?

我想知道,如果有一种方法可以为我的package.json依赖项使用注释。

现在我们有一个更大的package.json文件,我们越来越多地失去了依赖关系,他们来自那里。 在其他语言(不是javascript),我们可以轻松添加评论。 但由于JSON不支持评论,这对我们来说非常困难。

package.json是否有可选的文件格式来定义我们的依赖项?
如果没有,我们如何设法创建带注释的package.json?

我更想知道,为什么node / NPM强迫开发人员不要通过选择一个无法记录的文件格式来强制开发文档?!?

希望有人可以帮我们走出黑暗......


今年早些时候我遇到了同样的问题。
我刚刚写了一些像这样的基本脚本来解决这个问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/local/bin/python

import os

os.rename("package.json","package_M.json")

with open("package_M.json") as f:
    with open("package.json","a") as tmp_p:
        for line in f:
            if"//" not in line:
                tmp_p.write(line)
os.system('npm install')
os.remove("package.json")
os.rename("package_M.json","package.json")

我知道它像"黑客",但它适用于我:)
希望它会有所帮助!


我不明白你的标题,为什么有些依赖会无法安装到package.json。唯一的解释是在npm i上忘记--save标志。

继续前进

Is there a optional file format for package.json to define our dependencies?

没有。

If not, how can we manage to create a package.json with comments?

请参阅此问题重复的原始问题:如何为package.json添加注释以进行npm install?那里有一些食谱。就个人而言,我不想在package.json中添加注释,但我确实在我的JSON中使用了注释。我只是添加像"widt__comment___(value_below_is_capped_to_660_||_false_will_be_set_to_660_too)": false,这样的虚拟字段。我省略了最后一个字母,它在JSON排序时显示在顶部(下一个字段将是width,因此其注释以widt_开头)。

why node/NPM forces developers NOT to document, by choosing a fileformat which makes it impossible to document?

必须可靠地解析和渲染package.json,这限制了可能的格式选择。 JSON是非常可靠的旧格式,在解析和呈现方面有非常严格的已知规则。标准RFC 7159和ECMA-404也涵盖了JSON。 TOML不受任何保护。 YAML也不受任何标准的约束。顺便说一句,TOML仍然在v0.x上,根据Semver,它甚至不被认为是稳定的。