Skip to content

BREAKING: exit on all types of configuration errors in watch mode - #527

Merged
RyanZim merged 3 commits into
masterfrom
ryan/better-error-handling
Aug 20, 2026
Merged

RyanZim merged 3 commits into
masterfrom
ryan/better-error-handling

Conversation

@RyanZim

@RyanZim RyanZim commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

We don't want to exit watch mode if there's a processing error, but a configuration error on initial run should exit. Some of these cases did exit, but with an additional, unhelpful error message, since we proceeded beyond the error condition.

@RyanZim RyanZim added this to the v12 milestone Aug 20, 2026
@RyanZim
RyanZim requested a balanced review from Copilot August 20, 2026 18:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates watch mode to exit on initial configuration errors while continuing after file-processing errors.

Changes:

  • Makes error termination explicit via dontExit.
  • Adds watch-mode coverage for configuration failures.
  • Preserves watch mode after processing errors.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
index.js Refines error handling and watch-mode exit behavior.
test/error.js Tests configuration errors in normal and watch modes.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread index.js Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@RyanZim
RyanZim merged commit 0d8803f into master Aug 20, 2026
6 checks passed
@RyanZim
RyanZim deleted the ryan/better-error-handling branch August 20, 2026 18:22
santiagon610 added a commit to santiagon610/personal-website that referenced this pull request Sep 28, 2026
This PR contains the following updates:

| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [postcss-cli](https://github.com/postcss/postcss-cli) | [`^7.1.2` → `^12.0.0`](https://renovatebot.com/diffs/npm/postcss-cli/7.1.2/12.0.0) | ![age](https://developer.mend.io/api/mc/badges/age/npm/postcss-cli/12.0.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/postcss-cli/7.1.2/12.0.0?slim=true) |

---

### Release Notes

<details>
<summary>postcss/postcss-cli (postcss-cli)</summary>

### [`v12.0.0`](https://github.com/postcss/postcss-cli/blob/HEAD/CHANGELOG.md#1200--2026-09-04)

[Compare Source](postcss/postcss-cli@11.0.1...12.0.0)

- If using a YAML config, the `yaml` package must be installed separately ([#&#8203;478](postcss/postcss-cli#478))
- Requires Node.js v22+ ([#&#8203;525](postcss/postcss-cli#525))
- Errors if `--config` is passed, but no config is found ([#&#8203;467](postcss/postcss-cli#467), [#&#8203;522](postcss/postcss-cli#522))
- Now properly exits with an error if invalid options/configuration are passed in watch mode ([#&#8203;527](postcss/postcss-cli#527))
- Upgrade to chokidar v5; which results in slightly different handling of `dir-dependency` messages in watch mode ([#&#8203;501](postcss/postcss-cli#501))
- Properly watchs all config files if there are multiple config files ([#&#8203;536](postcss/postcss-cli#536))
- Minimized dependencies by removing fs-extra ([#&#8203;510](postcss/postcss-cli#510))
- Internal refactoring

### [`v11.0.1`](https://github.com/postcss/postcss-cli/blob/HEAD/CHANGELOG.md#1101--2025-03-12)

[Compare Source](postcss/postcss-cli@11.0.0...11.0.1)

- Update and minimize dependencies

### [`v11.0.0`](https://github.com/postcss/postcss-cli/blob/HEAD/CHANGELOG.md#1100--2023-12-05)

[Compare Source](postcss/postcss-cli@10.1.0...11.0.0)

- **BREAKING:** Require Node.js v18+ ([#&#8203;464](postcss/postcss-cli#464))
- Upgrade to [`postcss-load-config@5`](https://github.com/postcss/postcss-load-config/blob/main/CHANGELOG.md#50-2023-11-20) for improved ESM & TS config support ([#&#8203;461](postcss/postcss-cli#461), [#&#8203;462](postcss/postcss-cli#462))

### [`v10.1.0`](https://github.com/postcss/postcss-cli/blob/HEAD/CHANGELOG.md#1010--2022-11-29)

[Compare Source](postcss/postcss-cli@10.0.0...10.1.0)

- Allow running `--watch` mode in non-TTY contexts, like Docker ([#&#8203;448](postcss/postcss-cli#448))
- Update dependencies

### [`v10.0.0`](https://github.com/postcss/postcss-cli/blob/HEAD/CHANGELOG.md#1000--2022-06-29)

[Compare Source](postcss/postcss-cli@9.1.0...10.0.0)

- **BREAKING:** Drop Node 12 support ([#&#8203;438](postcss/postcss-cli#438))
- Add support for ESM config files ([#&#8203;437](postcss/postcss-cli#437))

### [`v9.1.0`](https://github.com/postcss/postcss-cli/blob/HEAD/CHANGELOG.md#910--2021-12-10)

[Compare Source](postcss/postcss-cli@9.0.2...9.1.0)

- Don't write to files if they're unchanged ([#&#8203;320](postcss/postcss-cli#320), [#&#8203;417](postcss/postcss-cli#417))

### [`v9.0.2`](https://github.com/postcss/postcss-cli/blob/HEAD/CHANGELOG.md#902--2021-11-04)

[Compare Source](postcss/postcss-cli@9.0.1...9.0.2)

- Switch to picocolors ([#&#8203;409](postcss/postcss-cli#409))
- Remove test files from npm package

### [`v9.0.1`](https://github.com/postcss/postcss-cli/blob/HEAD/CHANGELOG.md#901--2021-09-28)

[Compare Source](postcss/postcss-cli@9.0.0...9.0.1)

- Actually exit with error when attempting to stdout in watch mode
- Remove `bin/` from `files` in package.json

### [`v9.0.0`](https://github.com/postcss/postcss-cli/blob/HEAD/CHANGELOG.md#900--2021-09-24)

[Compare Source](postcss/postcss-cli@8.3.1...9.0.0)

- **BREAKING:** Require Node.js v12+
- **BREAKING:** Must specify full file path, including `.js` extension, when loading local plugins with `--use` ([#&#8203;401](postcss/postcss-cli#401))
- **BREAKING:** Officially remove support for watching postcss config (was already broken in previous releases)
- Add support for `dir-dependency` messages ([#&#8203;383](postcss/postcss-cli#383), [#&#8203;391](postcss/postcss-cli#391))
- Update deps

### [`v8.3.1`](https://github.com/postcss/postcss-cli/blob/HEAD/CHANGELOG.md#831--2020-12-12)

[Compare Source](postcss/postcss-cli@8.3.0...8.3.1)

- Ensure paths are not interpreted as numbers ([#&#8203;360](postcss/postcss-cli#360))
- Better errors for incorrect postcss version ([#&#8203;361](postcss/postcss-cli#361), [#&#8203;362](postcss/postcss-cli#362))

### [`v8.3.0`](https://github.com/postcss/postcss-cli/blob/HEAD/CHANGELOG.md#830--2020-11-17)

[Compare Source](postcss/postcss-cli@8.2.0...8.3.0)

- Exit on EOF/`^D` ([#&#8203;358](postcss/postcss-cli#358))

### [`v8.2.0`](https://github.com/postcss/postcss-cli/blob/HEAD/CHANGELOG.md#820--2020-10-29)

[Compare Source](postcss/postcss-cli@8.1.0...8.2.0)

- Allow backslashes in paths for better Windows experience ([#&#8203;355](postcss/postcss-cli#355))

### [`v8.1.0`](https://github.com/postcss/postcss-cli/blob/HEAD/CHANGELOG.md#810--2020-10-08)

[Compare Source](postcss/postcss-cli@8.0.0...8.1.0)

- Add support for `postcss.config.cjs` files ([#&#8203;351](postcss/postcss-cli#351))

### [`v8.0.0`](https://github.com/postcss/postcss-cli/blob/HEAD/CHANGELOG.md#800--2020-09-21)

[Compare Source](postcss/postcss-cli@7.1.2...8.0.0)

- **BREAKING:** Support postcss v8 ([#&#8203;344](postcss/postcss-cli#344), [#&#8203;349](postcss/postcss-cli#349))
- **BREAKING:** postcss is now a `peerDependency`, you must install it seperately ([#&#8203;344](postcss/postcss-cli#344), [#&#8203;349](postcss/postcss-cli#349))
- Upgrade dependencies ([#&#8203;340](postcss/postcss-cli#340))

</details>

---

### Configuration

📅 **Schedule**: (in timezone Etc/UTC)

- Branch creation
  - Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [x] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate CLI](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC42NS41IiwidXBkYXRlZEluVmVyIjoiNDQuNjUuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: Renovate <renovate@users.noreply.code.inl.io>
Co-authored-by: Nicholas Santiago <nicholas.santiago@gmail.com>
Reviewed-on: https://code.inl.io/nick/personal-website/pulls/11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants