
linter的pub专属4条规则让pubspec.yaml更安全、规范的完整清单【免费下载链接】linterLinter for Dart.项目地址: https://gitcode.com/gh_mirrors/lint/linterDartlinter静态代码检查器中有一组专门面向pubspec.yaml的pub 专属规则共 4 条depend_on_referenced_packages、package_names、secure_pubspec_urls、sort_pub_dependencies。它们能在你运行dart analyze时自动检查依赖声明是否遗漏、包名是否合规、URL 是否安全、依赖是否有序是保障包依赖安全与规范的完整清单。本文带你逐条看懂并给出快速启用方法。为什么 pubspec.yaml 也需要被检查大多数 linter 规则只检查 Dart 代码但这 4 条规则在源码中归属于Group.pub分组直接分析pubspec.yaml文件——也就是 Dart 项目的依赖清单。依赖清单写得不好轻则团队协作时合并冲突频发重则引入不安全的依赖源、遗漏依赖导致构建失败。linter 把它们变成了可自动检查的规范一次dart analyze .就能全部扫出来。 规则源码统一放在lib/src/rules/pub/目录下每条规则一个文件命名与规则名一致方便对照阅读。规则一depend_on_referenced_packages依赖必须显式声明这条规则检查你 import 了某个包就必须把它写进 pubspec.yaml。如果代码里import package:a/a.dart但dependencies:里并没有alinter 就会报出The imported package a isnt a dependency of the importing package.它还有一个贴心细节dev_dependencies开发依赖只在非公开文件不在lib/或bin/下的文件中才被允许引用防止开发依赖悄悄泄露到发布产物里。规则源码depend_on_referenced_packages.dart单元测试depend_on_referenced_packages_test.dart规则二package_names包名用小写下划线包名必须遵循lowercase_with_underscores风格只用小写字母、数字和下划线[a-z0-9_]不能以数字开头也不能是保留字。比如name: FooBar会被标记为不合法应改为foo_bar。这类命名错误在发布到 pub 平台前发现越早越好。规则源码package_names.dart测试用例FooBar被标记_pubspec.yaml规则三secure_pubspec_urls强制使用 HTTPS这是 4 条中唯一关乎安全的规则。它扫描 pubspec.yaml 中所有 URL——包括repository、homepage、issue_tracker、documentation以及 git 依赖的git.url——一旦发现使用http或git:这类不安全协议就会报错The http protocol shouldnt be used because it isnt secure.修复方法很简单把http://改成https://把git://地址换成https://克隆地址。规则源码secure_pubspec_urls.dart单元测试secure_pubspec_urls_test.dart规则四sort_pub_dependencies依赖按字母排序dependencies、dev_dependencies、dependency_overrides三个列表都应按字母 A 到 Z 排序。排序的好处是实打实的新增依赖时知道该插在哪一行、团队协作合并冲突更少、代码评审更容易读。规则实现上会先按文件位置排序依赖项再逐对比较包名发现逆序即报告Unsorted dependencies。规则源码sort_pub_dependencies.dart单元测试sort_pub_dependencies_test.dart快速启用3 步开启全部 pub 规则在项目根目录的analysis_options.yaml中加入以下内容即可linter: rules: - depend_on_referenced_packages - package_names - secure_pubspec_urls - sort_pub_dependencies然后在项目根目录执行dart analyze .所有命中规则的依赖清单问题会连同修正建议correction message一起打印在控制台。不想手工挑选规则项目提供了一份包含全部规则的清单文件 example/all.yaml从中按需挑选即可。4 条规则一览表规则名检查对象修复动作depend_on_referenced_packagesimport/export 的包在 pubspec.yaml 中补充依赖声明package_namesname字段改为小写下划线命名secure_pubspec_urls所有 URL 字段改用https协议sort_pub_dependencies三个依赖列表按字母顺序重排常见问题FAQQ这些规则会影响构建吗不会。linter 只做静态检查并给出警告不修改任何文件修复与否由你决定。Q为什么我的项目没报错请确认analysis_options.yaml中已启用对应规则且项目根目录确实有 pubspec.yamlpub 规则只在存在 pubspec 时才生效。Q想深入了解规则如何编写可以阅读项目内的规则编写说明writing-lints.md。写在最后这 4 条 pub 规则覆盖了依赖声明、命名规范、URL 安全、列表排序四个最容易出问题的环节规则少、收益高非常适合所有 Dart 项目直接启用。把它们加入analysis_options.yaml让依赖清单和代码一样有章可循吧【免费下载链接】linterLinter for Dart.项目地址: https://gitcode.com/gh_mirrors/lint/linter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考