Javascript 在没有index.js的情况下更改NPM入口点

Javascript 在没有index.js的情况下更改NPM入口点,javascript,node.js,npm,Javascript,Node.js,Npm,我最近向NPM发布了一个私有模块,其中包含一些我们在一些服务中使用的通用代码 代码是用ES6编写的,因此我们需要在发布到NPM之前使用babel进行传输。我有一个预发布脚本,它可以将src传输到lib 这个模块中没有index.js文件,因为它只是一些常用代码 我遇到的问题是,当我从NPM安装模块时,使用require('@ourorg/ourmodule/somecode')不起作用(找不到模块)。相反,我必须使用require('@ourorg/ourmodule/lib/somecode'

我最近向NPM发布了一个私有模块,其中包含一些我们在一些服务中使用的通用代码

代码是用ES6编写的,因此我们需要在发布到NPM之前使用babel进行传输。我有一个预发布脚本,它可以将
src
传输到
lib

这个模块中没有
index.js
文件,因为它只是一些常用代码

我遇到的问题是,当我从NPM安装模块时,使用
require('@ourorg/ourmodule/somecode')
不起作用(找不到模块)。相反,我必须使用
require('@ourorg/ourmodule/lib/somecode')


我曾尝试将
package.json
中的
main
字段更改为
lib
的许多变体,但它似乎不起作用,除非我包含
index.js
文件,在这种情况下,
require('@ourorg/ourmodule')
返回导出到那里的任何内容。我看到的一种解决方法是导出
index.js
文件中的所有公共代码,但这根本不可维护。

包中的
main
字段遵循与普通节点导入相同的规则-或者它应该特别指向单个文件,或者它可以指向一个包含
index.js
的目录

据我所知,没有办法使导入包仅仅成为目录的别名。如果有,那么
需要(@ourorg/ourmodule)返回什么


如果每次导入某些内容时都必须键入
lib
,这绝对会让您发疯,那么您可以在构建过程中添加一个步骤,自动生成一个
index.js
,在根目录下重新导出所有内容?

似乎应该有一种更简单的方法来实现这一点?我们肯定不是第一个希望使用一些通用代码作为依赖项的人。如果我在require语句中包含
/lib/
,即使根文件夹没有
index.js
,模块也能正常工作。真的没有办法说“不看项目根目录,看这个文件夹”?@RhysCamm:根据之前对该功能的请求的响应(,),如果不改变节点的模块解析算法,就不可能做到这一点,这一点实际上是一成不变的。很不幸,我认为你运气不好。