当我的包是嵌套依赖项时,某些文件未安装,即使它们在作为直接依赖项添加时已安装
Posted
技术标签:
【中文标题】当我的包是嵌套依赖项时,某些文件未安装,即使它们在作为直接依赖项添加时已安装【英文标题】:Some files not installed when my package is a nested dependency, even though they do get installed when it's added as a direct dependency 【发布时间】:2019-07-05 10:51:19 【问题描述】:我必须 npm 包,一个(比如,“父”)取决于另一个(“子”)。我的子包有许多.js
文件,比如main.js
和other.js
。前者在孩子的package.json
中列为main
。
这两个都应该包含在包中。当我检查使用npm pack
生成的包时,它看起来很好。当我将发布的包添加为父包的依赖项并在parent/node_modules/
中检查其内容时,这两个文件也如预期的那样存在。然后我将父级作为单独的包发布,子级列为依赖项。
但是,当我以父项作为依赖项启动一个新项目,然后安装该项目的node_modules/client
时,我看到main.js
,但看不到other.js
!无论我是通过 Yarn 还是 npm 安装,都会发生这种情况。这可能是什么原因?
【问题讨论】:
【参考方案1】:嗯...有更深层次的根本原因,所以这可能对任何人都没有帮助,但以防万一。问题是当它是一个嵌套依赖时,安装了这个包的不同版本。原因是依赖项是预发布版本,指定为 ^0.0.1-<commit hash>
。由于提交哈希可以以数字开头,因此我有一个旧版本,其提交哈希实际上以更高的数字开头,因此当父使用插入符号 ^
指定子依赖项时最终安装,但不是当我直接添加了子依赖。
将确切版本指定为父项中的依赖项解决了该问题。
【讨论】:
以上是关于当我的包是嵌套依赖项时,某些文件未安装,即使它们在作为直接依赖项添加时已安装的主要内容,如果未能解决你的问题,请参考以下文章