linter的pub专属4条规则:让pubspec.yaml更安全、规范的完整清单
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),仅供参考

相关新闻

如何让图片轮播滚动不卡顿:FXImageView的cacheKey与iCarousel性能优化指南

如何让图片轮播滚动不卡顿:FXImageView的cacheKey与iCarousel性能优化指南

如何让图片轮播滚动不卡顿:FXImageView的cacheKey与iCarousel性能优化指南 【免费下载链接】FXImageView FXImageView is a class designed to simplify the application of common visual effects such as reflections and drop-shadows to images, and also to he…

2026/8/24 17:19:31 阅读更多 →
DSL与光速引导:AI优化GPU内核性能的工程实践

DSL与光速引导:AI优化GPU内核性能的工程实践

1. 项目概述:当AI优化器遇上GPU内核的“光速”天花板 最近在折腾一个挺有意思的项目,核心就一句话: 用领域特定语言(DSL)和“光速”性能上限(Speed-of-Light)作为引导,来提升GPU内核…

2026/8/24 17:19:31 阅读更多 →
数学建模实战:从思维转变到全流程避坑指南

数学建模实战:从思维转变到全流程避坑指南

1. 项目概述:从“入门”到“放弃”的真实路径 “数学建模从入门到放弃”,这个标题精准地戳中了无数理工科学生和初入职场数据分析师的心窝。它描述的不仅仅是一个学习过程,更像是一场普遍存在的“精神内耗”循环:满怀热情地打开一…

2026/8/24 17:19:31 阅读更多 →

最新新闻

ComfyUI_UltimateSDUpscale:2 倍放大补细节,不炸显存

ComfyUI_UltimateSDUpscale:2 倍放大补细节,不炸显存

ComfyUI_UltimateSDUpscale:2 倍放大补细节,不炸显存 【免费下载链接】ComfyUI_UltimateSDUpscale ComfyUI nodes for the Ultimate Stable Diffusion Upscale script by Coyote-A. 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI_UltimateSDUp…

2026/8/24 18:58:36 阅读更多 →
Vomit项目:本地LLM解析Claude Token序列,实现可读化翻译

Vomit项目:本地LLM解析Claude Token序列,实现可读化翻译

这次我们来看一个名为“Vomit”的项目,它瞄准了一个非常具体的痛点:当你使用Claude这类大型语言模型时,有时会得到一堆难以理解的、由“token”组成的“呕吐物”输出。这个项目的核心,就是利用本地部署的LLM,将这些混乱…

2026/8/24 18:58:36 阅读更多 →
Canvas 2D 实现 3D 玫瑰花:从参数曲面到交互动画的完整指南

Canvas 2D 实现 3D 玫瑰花:从参数曲面到交互动画的完整指南

1. 项目概述:当代码邂逅浪漫最近在整理个人作品集,想放点既有技术含量又能让人眼前一亮的东西。翻看之前的项目,大多是些后台管理系统或者工具类应用,总觉得少了点温度和趣味。正好赶上一些特殊的日子,琢磨着能不能用代…

2026/8/24 18:58:36 阅读更多 →
构建模拟AI市场动力学:从复杂沙盘评估到智能体训练场

构建模拟AI市场动力学:从复杂沙盘评估到智能体训练场

1. 项目缘起:为什么要在模拟的AI市场中评估智能体? 最近和几个做AI Agent的朋友聊天,大家普遍有个困惑:我们花大力气开发的智能体,在自家测试环境里跑得飞快,逻辑清晰,但一放到真实、复杂的业务…

2026/8/24 18:58:36 阅读更多 →
AblateCell智能体:基于虚拟细胞库的AI因果推理引擎设计与应用

AblateCell智能体:基于虚拟细胞库的AI因果推理引擎设计与应用

1. 项目概述:当AI智能体遇上虚拟细胞库最近在生物信息学和计算生物学圈子里,一个概念正变得越来越热:虚拟细胞库。简单来说,这就像是为细胞建立一个数字化的“档案馆”或“图书馆”,里面存放的不是实体细胞&#xff0c…

2026/8/24 18:58:36 阅读更多 →
Inject, Align, Recover:大模型知识内化三阶段训练框架实践指南

Inject, Align, Recover:大模型知识内化三阶段训练框架实践指南

这次我们来看一个名为“Inject, Align, Recover”的文档知识内化方法。它不是一个新的AI应用或一键启动工具,而是一个针对大语言模型(LLM)进行高效、低成本知识注入的后训练(Post-Training)技术框架。简单来说&#xf…

2026/8/24 18:57:36 阅读更多 →

日新闻

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践

前端内容安全与依赖审计实践 前端安全依赖分层防护。没有任何单一配置能替代输出编码、权限校验和依赖更新。 把不可信内容当作数据 默认使用框架的转义能力;确需渲染 HTML 时,先在服务端或可信的客户端库中进行白名单过滤。避免把用户输入直接赋给 inne…

2026/8/24 1:08:15 阅读更多 →
Windows登录密码存储机制全解析:从哈希算法到安全加固实战

Windows登录密码存储机制全解析:从哈希算法到安全加固实战

1. 项目概述:Windows登录密码的“黑匣子”每次你按下CtrlAltDel,输入密码,然后看到那个熟悉的桌面,这背后发生了一系列复杂而精密的操作。作为一名长期与Windows系统打交道的从业者,我经常被问到:“我的密码…

2026/8/24 1:08:15 阅读更多 →
AI面试系统安全挑战与解决方案

AI面试系统安全挑战与解决方案

1. 项目概述:AI面试系统的安全挑战去年参与某跨国企业AI面试系统部署时,遇到一个典型案例:候选人在视频面试中无意提到竞争对手产品名称,系统竟自动将该信息关联到企业知识库并生成竞品分析报告。这个看似"智能"的功能&…

2026/8/24 1:08:15 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/24 0:06:02 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/24 0:20:20 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/24 0:14:11 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/23 18:47:06 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/23 12:10:44 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/24 11:20:22 阅读更多 →