Skip to content

chef.config

Файл chef.config.ts (или chef.config.js) в корне проекта позволяет задать правила и ограничения для всех расширений.

ts
export default {
  deny: { /* запрет опций */ },
  defaults: { /* значения по умолчанию */ },
  enforce: { /* принудительные значения */ },
};

deny — запрет опций

Запрещает использование определённых возможностей. Если расширение нарушает правило, сборка завершится ошибкой или предупреждением.

ts
export default {
  deny: {
    sfc: true,                    // запретить Vue SFC
    standalone: true,             // запретить standalone-сборки
    minification: true,           // запретить минификацию
    resolveNodeModules: true,     // запретить инлайн npm-зависимостей
    transformClasses: true,       // запретить трансформацию классов
    sourceMaps: true,             // запретить source maps
  },
};

Каждое правило может быть true (ошибка с текстом по умолчанию) или объектом с настройками:

ts
export default {
  deny: {
    sfc: {
      severity: 'error',
      message: 'SFC запрещены, используйте render functions',
    },
    resolveNodeModules: {
      severity: 'warning',
      message: 'Инлайн npm-зависимостей не рекомендуется',
    },
  },
};
ПолеТипОписание
severity'error' | 'warning'error — сборка останавливается, warning — продолжается с предупреждением
messagestringКастомный текст ошибки или предупреждения

defaults — значения по умолчанию

Устанавливает дефолтные значения для всех расширений. Расширение может переопределить их в своём bundle.config.

ts
export default {
  defaults: {
    targets: 'last 2 versions',
    sourceMaps: true,
    treeshake: true,
  },
};

enforce — принудительные значения

Принудительно задаёт значения для всех расширений. Расширение не может переопределить их в bundle.config.

ts
export default {
  enforce: {
    targets: 'baseline widely available',
    sourceMaps: false,
    babel: true,
  },
};

Пример

ts
// chef.config.ts
export default {
  deny: {
    sfc: true,
    standalone: {
      severity: 'warning',
      message: 'Standalone не рекомендуется',
    },
  },
  defaults: {
    targets: 'last 2 versions',
  },
  enforce: {
    sourceMaps: false,
  },
};

Распространяется под лицензией MIT.