了解如何从package.json文件中提取依赖关系以进行有角度的应用程序以扫描非捆绑/缩小版本

时间:2019-04-16 00:47:04

标签: angular webpack angular-cli

我需要扫描我们使用angular应用程序部署的所有库。但是,由于构建过程将所有库捆绑在一起,因此我无法扫描各个库。我可以扫描原始的node_modules目录,但是它同时具有devDependencies和依赖关系。我真的只想扫描依赖项,因为这是实际部署的东西。

我研究了设置自己的自定义webpack配置,但似乎无法在angular.json中添加自己的“建筑师”部分。我想保持现有的构建过程完整无缺,只有一个可以使用自定义webpack配置的辅助构建过程。不幸的是,当我尝试此操作时,它说该命令对于ng不存在。

如果有人对我有任何想法,想法或其他参考,将不胜感激。不必更改angular.json。也许我可以探索其他一些可能性来提取package.json依赖项部分下列出的所有库。

2 个答案:

答案 0 :(得分:0)

要添加自定义构建设置,您可以像下面这样在angular.json上创建新配置:

  "architect": {
    "build": {
      // ...
      "configurations": {
        "quality": {
          // ...
        },
        "production": {
          // ...
        }
      }
    },

在此示例中,我创建了一个自定义quality配置作为生产副本,并将其更改为我的需要。另外,我还在环境文件夹中创建了一个自定义environment.qa.ts文件(并指向quality配置)来设置要在构建中使用的适当常量。

然后您可以通过以下命令使用自定义配置来运行构建:ng build --configuration quality

要了解包内容和包大小,可以使用webpack-bundle-analyzer,它提供了非常不错的包视图。

答案 1 :(得分:0)

因此,在研究其他解决方案之后,我发现我可以做npm prune --production或以npm install --only=production开头,这正是我所需的工作,可以将依赖项与node_modules目录中的devDependencies隔离开来。我无需在angular-cli中修改或更改应用程序的构建过程。 prune命令运行后,我可以从node_modules目录中获取所有* .js文件,然后针对这些文件触发我的安全扫描。