安装模块时,phantomChildren
的列表将出现在package.json
文件中。什么是phantomChildren
?
发布于 2019-12-05 14:58:54
我没有找到npm
package phantomChildren
的正式文档。但是遇到了其他一些解释:deps/。它是关于rast
的,但是很好地解释了npm
依赖项的行为。
例如,库A
可以从库B
和C
导入定义,但是B
和C
都可以从D
导入,这在这四个包之间创建了一个“菱形依赖”。
当项目使用未在其
package.json
文件中定义的包时,就会发生“幻影依赖”。
一些活生生的例子:
my-library/package.json
{
"name": "my-library",
"version": "1.0.0",
"main": "lib/index.js",
"dependencies": {
"minimatch": "^3.0.4"
},
"devDependencies": {
"rimraf": "^2.6.2"
}
}
my-library/lib/index.js
var minimatch = require("minimatch")
var expand = require("brace-expansion"); // ???
var glob = require("glob") // ???
等等-其中两个库没有在package.json文件中声明为依赖项。这到底是怎么回事!?事实证明,支撑展开是最小舱口的依赖,而glob是边缘的依赖。在安装过程中,NPM已经将它们的文件夹夷为平地,使其位于my-library/node_modules下。NodeJS require()函数在那里找到它们,因为它根本不考虑package.json文件就探测文件夹。
总结一下:如果包使用它自己的依赖项,它可以被视为phantomChildren。包没有直接的依赖关系,而是从其他地方使用它。
https://stackoverflow.com/questions/56837043
复制相似问题