-
Notifications
You must be signed in to change notification settings - Fork 31
Description
After the initial load in a workspace, changing a JavaScript prettier config has no impact and requires restarting prettierd.
After looking through the code, I believe this is due to how Node caches imports and how prettier handles the resolveConfig method call.
Even though useCache: false should result in the configuration being reloaded looking through the prettier implementation when a JS config is reloaded it makes this method call: https://github.com/prettier/prettier/blob/main/src/config/prettier-config/loaders.js#L20
async function loadJs(file) {
const module = await import(pathToFileURL(file).href);
return module.default;
}Since the file path is the same on reload the Node import caching behavior will return the same configuration as before.
Though I am not very familiar with import caching, that is my understanding from reading: https://nodejs.org/api/modules.html#caching.
- Related issue: Invalidate cache when using import nodejs/node#49442
This may be something that needs to be fixed on prettier's side, at least if my understanding is correct. I've created an issue there as well: prettier/prettier#16234.
I am unsure if there is something that can be done on this side. Using non JS configurations works as expected since files are re-read and re-parsed by prettier.
May just be something to be aware and mark as a note.