我最近向 NPM 发布了一个私有模块,其中包含一些我们在一些服务中使用的通用代码。
代码是用 ES6 编写的,所以我们需要在发布到 NPM 之前使用 babel 对其进行转换。我有一个预发布脚本,可以转换src为lib.
index.js此模块中没有文件,因为它只是一些通用代码。
我遇到的问题是,当我从 NPM 安装模块时,使用require('@ourorg/ourmodule/somecode')不起作用(找不到模块)。相反,我必须使用require('@ourorg/ourmodule/lib/somecode').
我尝试将main字段更改package.json为 的许多变体lib,但除非我包含index.js文件,否则它似乎不起作用,在这种情况下,require('@ourorg/ourmodule')返回导出到那里的任何内容。我可以看到的一种解决方法是将所有通用代码导出到一个index.js文件中,但这根本无法维护。