Mixin 入门:YAML 与 JavaScript 两种写法
Mixin 在配置加载时把你的自定义内容合并进当前配置(Settings → Profile Mixin)。它有两种书写模式,行为差异很大:
YAML 模式:声明式覆盖
mixin:
dns:
enable: true
enhanced-mode: fake-ip
log-level: debug
写什么字段就整体替换配置里的同名字段。适合覆盖 DNS、日志级别这类「整块换掉也无妨」的配置;不适合 rules——你大概率是想「追加」而不是「只剩这几条」。
JavaScript 模式:可编程合并
module.exports.parse = async (raw, { yaml }) => {
const config = yaml.parse(raw);
// 在原规则前插入两条
config.rules = [
"DOMAIN-SUFFIX,mybank.com,DIRECT",
"DOMAIN-KEYWORD,ads,REJECT",
...config.rules,
];
return yaml.stringify(config);
};
JS 模式拿到完整配置对象,想怎么改就怎么改:插规则、按名字过滤节点、批量给节点改属性都行。
怎么选
只改 DNS / 日志级别 → YAML 够用;涉及 rules、proxies 的增删 → 直接用 JS。写完记得打开 Mixin 启用开关,并重新点选配置一次让它重载。