如何在Snyk扫描项目时忽略文件夹?CLI与SCM场景实现方法
在Snyk中排除文件夹/目录的方法(CLI、SCM及项目类型差异)
首先明确:Snyk Code和Snyk开源在扫描时的排除逻辑有差异——Snyk Code会直接跳过指定目录下的所有代码文件,而Snyk开源则会避免解析这些目录里的依赖配置文件(比如package.json、pom.xml)。下面是三种可行的排除方法:
1. 用.snyk配置文件(持久化生效)
这是最通用的方式,不管是CLI扫描还是从SCM导入的项目都适用,能同时覆盖两种Snyk扫描类型。
- 在项目根目录创建或编辑
.snyk文件,按类型添加规则:
针对Snyk开源的排除规则:
针对Snyk Code的排除规则(需添加exclude: - path: "./node_modules" - path: "./dist"code字段):code: exclude: - "./test/**" - "./docs/*" - 规则支持通配符:
**匹配多级目录,*匹配单级目录或文件 - 该文件会被Snyk自动识别,无需额外操作即可生效
2. CLI扫描时用--exclude选项(临时生效)
适合临时调整扫描范围、不想修改配置文件的场景:
- 扫描Snyk开源项目:
snyk test --exclude=./node_modules --exclude=./dist - 扫描Snyk Code项目:
snyk code test --exclude=./test/** --exclude=./docs - 注意:这个选项仅对当前执行的CLI命令有效,不会影响Snyk平台上的项目配置
3. SCM导入时通过UI配置(平台端持久化)
从GitHub、GitLab等平台导入项目到Snyk时,或者对已导入项目修改设置,都可以在UI里配置排除目录:
- 导入新项目:在导入流程的「高级设置」里找到「排除文件夹」,输入要跳过的路径(比如
node_modules/、test/**),支持添加多个 - 已导入项目:进入项目详情页,点击「设置」→「扫描设置」,找到排除目录的配置项修改即可
- 配置完成后,后续所有自动扫描都会跳过这些目录
内容的提问来源于stack exchange,提问作者Jonathan Gruber
相关产品推荐
相关产品推荐

