我需要扫描我们使用angular应用程序部署的所有库。但是,由于构建过程将所有库捆绑在一起,因此我无法扫描各个库。我可以扫描原始的node_modules目录,但是它同时具有devDependencies和依赖关系。我真的只想扫描依赖项,因为这是实际部署的东西。
我研究了设置自己的自定义webpack配置,但似乎无法在angular.json中添加自己的“建筑师”部分。我想保持现有的构建过程完整无缺,只有一个可以使用自定义webpack配置的辅助构建过程。不幸的是,当我尝试此操作时,它说该命令对于ng不存在。
如果有人对我有任何想法,想法或其他参考,将不胜感激。不必更改angular.json。也许我可以探索其他一些可能性来提取package.json依赖项部分下列出的所有库。
答案 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文件,然后针对这些文件触发我的安全扫描。