You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Angular-CLI打包的第三方软件及间接依赖列表?

我来给你几个实用的方案,帮你搞定Angular-CLI打包后所有第三方依赖(包括间接依赖)的许可证列表问题:

方案1:用license-checker工具(最直接全面)

这个工具就是专门用来扫描项目所有依赖(含间接依赖)的许可证信息的,上手超简单:

  • 先安装:可以全局安装方便后续使用 npm install -g license-checker,或者作为项目开发依赖安装 npm install license-checker --save-dev
  • 执行命令生成结果:
    # 导出生产环境所有依赖(含间接)的许可证信息为JSON格式
    license-checker --production --json > third-party-licenses.json
    # 或者导出为更易读的CSV格式
    license-checker --production --csv > third-party-licenses.csv
    
    生成的文件里会包含每个包的名称、版本、许可证类型、包的本地路径,甚至许可证原文内容,完全覆盖你要的所有间接依赖需求。
方案2:调整license-webpack-plugin配置(适配你现有工具)

你已经在用这个插件了,大概率是默认配置没开启扫描所有间接依赖,修改配置就能解决:

  1. 先确保你的Angular项目支持自定义webpack配置(Angular 6+可以通过@angular-builders/custom-webpack实现,先装这个依赖:npm install @angular-builders/custom-webpack --save-dev)
  2. 在项目根目录创建自定义webpack配置文件(比如webpack.config.js),修改插件配置:
    const LicenseWebpackPlugin = require('license-webpack-plugin').LicenseWebpackPlugin;
    
    module.exports = {
      plugins: [
        new LicenseWebpackPlugin({
          // 关键:开启扫描所有依赖(包括间接依赖)
          scanAllDependencies: true,
          // 指定输出的文件名
          outputFilename: '3rdPartyLicense-full.txt',
          // 可选:配置要排除的包(比如你不想包含webpack本身)
          // exclude: ['webpack'],
          // 强制包含每个包的许可证文本内容
          includeLicenseFile: true
        })
      ]
    };
    
  3. 修改angular.json里的构建配置,指定使用这个自定义webpack文件,然后重新运行ng build --prod,生成的3rdPartyLicense-full.txt就会包含所有间接依赖的许可证信息了。
方案3:结合npm/yarn依赖列表+许可证工具

如果你只想先拿到所有依赖的完整列表(含间接),可以用npm或yarn自带的命令:

# npm 导出生产依赖的树状结构为JSON
npm ls --production --json > dependencies-tree.json
# yarn 版本命令
yarn list --production --json > dependencies-tree.json

拿到这个依赖树之后,你可以配合license-checker批量获取许可证信息,或者自己写简单脚本解析成你需要的格式。

个人最推荐方案1,不需要改动项目的构建配置,直接就能拿到所有你要的信息,省心又高效。

内容的提问来源于stack exchange,提问作者Puneri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:33:35