I am trying to figure out why I get different Prettier output depending on where it is invoked.
I have the following ways to invoke Prettier configured:
- Run on save via VSCode configuration
- Run on commit via husky
- Ability to run on all files via npm script (
pnpm prettier)
The problem is my prettier-plugin-sort-imports only seems to run when I save the file, but not via husky or the npm script. Any ideas?
Configuration
I have Prettier configured to be run on save via VSCode:
User\settings.json
"editor.formatOnSave": true,
...
"[*]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
Prettier + lint-staged (run on commit via husky) Config:
package.json
"scripts": {
...
"prettier": "npx prettier --write .",
...
},
...
"prettier": {
"semi": false,
"printWidth": 100,
"sortingMethod": "alphabetical",
"importTypeOrder": [
"localImports",
"NPMPackages"
],
"plugins": [
"./node_modules/prettier-plugin-sort-imports/dist/index.js"
]
},
...
"lint-staged": {
"*": [
"eslint --fix",
"prettier --write"
]
},
...
"devDependencies": {
...
"prettier": "^3.1.1",
"prettier-plugin-prisma": "^5.0.0",
"prettier-plugin-sort-imports": "^1.8.1",
On Commit Config:
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx lint-staged