package.json 中的主键是必需的吗?

Ada*_*tan 7 program-entry-point npm package.json

我的问题

我有一个 repo,其中包含一些 nodejs Serverless, Function-as-a-Service 函数的集合。这些函数共享相同的node_modules目录,但单独部署到我们的 FaaS 平台。

npm init在 中创建一个"main": "function.js"条目package.json。由于我没有单个(或任何)入口点,我想知道是否可以完全删除此行。

我试过什么

我的问题

main在关键的package.json强制性?

Sim*_*one 9

不,这不是强制性的。

npm publish即使不指定主入口点,您也可以在 npm 上发布包(使用命令)。所以你可以自由地从你的 package.json 中删除它。

根据文档,唯一需要的字段是“名称”和“版本”。

  • @AdamMatan - 关于 _"来自 npm 文档的官方参考"_...根据文档 [here](https://docs.npmjs.com/getting-started/using-a-package.json#requirements )。它在 _"requirements"_ 下声明:A _package.json_ 必须具有:`"name"` 和 `"version"` - 它没有提及任何其他内容。 (2认同)

Nat*_*han 6

主要的

main 字段是模块 ID,它是程序的主要入口点。也就是说,如果您的包名为foo,并且用户安装了它,然后执行require("foo"),则将返回主模块的导出对象。

这应该是相对于包文件夹根目录的模块 ID。

由于您不与其他人共享您的库,因此这不是强制性的

有关更多信息,请参阅文档