如何读取外部定义到根 package.json 的依赖项?

Posted

技术标签:

【中文标题】如何读取外部定义到根 package.json 的依赖项?【英文标题】:How to read in dependencies externally defined to the root package.json? 【发布时间】:2021-06-02 04:05:31 【问题描述】:

我不确定这会被称为什么。

如果您知道要使用的正确 TERM 或供我参考以学习如何使用的内容,我将不胜感激。

我正在查看我们的项目 package.json 文件,该文件相当大,包含所有依赖项。问题在于,仅通过查看文件,您不知道这些依赖项在应用程序中的哪些位置使用。

有没有办法破解?我正在寻找一种方法来构建 project.json 文件,以便在使用它们的地方定义依赖项。 例如假设我们有这个依赖列表,我们会说它是 3 个区域 [CORE, CHARTS, MAP]

  "dependencies": 
    // CORE
    "@angular/common": "~11.1.1",
    "@angular/compiler": "~11.1.1",
    "@angular/core": "~11.1.1",
    "compodoc": "~0.0.41",
    // CHART
    "chart.js": "~2.9.4",
    // MAP
    "leaflet": "~1.7.1",
    "leaflet.markercluster": "~1.4.1",
    "leaflet-maskcanvas": "~1.0.0"
  

是否可以将 CHART 和 MAP 项移动到外部 package.json 文件或定义依赖关系的文件,例如下面?

  "dependencies": 
    // CORE
    "@angular/common": "~11.1.1",
    "@angular/compiler": "~11.1.1",
    "@angular/core": "~11.1.1",
    "compodoc": "~0.0.41",
    // CHART
    filepathToCHARTPackage.json,
    // MAP
    filepathToMAPPackage.json
  

我想要这样做是因为如果在定义的组件或子区域中定义了依赖项,那么维护和清理添加或删除的功能会变得更加容易,而不会留下孤立的引用。

【问题讨论】:

【参考方案1】:

在您创建的组件文件夹中,例如src/app/map-world

    创建一个 package.json 文件,就像在应用程序的根目录中使用的文件一样。 指定该组件所需的包 在根 package.json 文件依赖项中,您引用组件 package.json(见下文)

package.json

"dependencies": 
    ...,
    "map-world": "file:src/app/map-world/"

当你像往常一样运行 npm install 时,它会选择组件指定的 package.json 文件并将包依赖项安装在 root/node_modules 文件夹中,而不是子组件文件夹中。

我仍在努力将图像设置到新组件内的文件夹中,而不是在根目录中,而无需从根目录指定完整路径。

【讨论】:

以上是关于如何读取外部定义到根 package.json 的依赖项?的主要内容,如果未能解决你的问题,请参考以下文章

错误类型错误:无法读取未定义的属性(读取“nativeElement”)

万一失败,如何继续运行 package.json 中定义的脚本?

如何在 package.json 中为包提供自定义 url

读取包时出错:graceful-fs\package.json

如何卸载 package.json (NPM) 中列出的所有依赖项?

如何使用 postinstall 编辑 package.json