我必须使用npm软件包,其中一个(例如“父”)依赖于另一个(“子”)。我的子软件包有多个.js
文件,例如main.js
和other.js
。前者在孩子的main
中列为package.json
。
这两个都应包含在包装中。当我检查由npm pack
生成的包时,看起来不错。当我将发布的包添加为父包的依赖项并检查其在parent/node_modules/
中的内容时,两个文件也都出现了,这与预期的一样。然后,我将父级作为单独的程序包发布,并将子级列为依赖项。
但是,当我然后以父级作为依赖项启动一个新项目,然后安装该项目的node_modules/client
时,看到的是main.js
,但没有看到other.js
!无论我是通过Yarn还是npm安装它,都会发生这种情况。可能是什么原因造成的?
答案 0 :(得分:0)
嗯...有一个更深层次的根本原因,所以这可能不会帮助任何人,但以防万一。问题是,当它是嵌套依赖项时,将安装该软件包的其他版本。这样做的原因是该依赖项是一个预发布版本,指定为^0.0.1-<commit hash>
。由于提交哈希可以以数字开头,因此我有一个较旧的版本,该提交的哈希实际上以更高的数字开头,因此,当父使用尖号^
指定子依赖项时,最终安装了该哈希,但当我直接添加了子依赖项。
在父级中将确切版本指定为依赖项可以解决该问题。