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 啟用開關,並重新點選配置一次讓它過載。