使用指南 / 进阶技巧

Mixin 入门:YAML 与 JavaScript 两种写法

进阶技巧 · 2026-02-02 更新 · 约 2 分钟

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 启用开关,并重新点选配置一次让它重载。