Skip to content

Commit 657f7b9

Browse files
authored
fix: invoke eslint via node to avoid PATH lookup failures (#21)
1 parent 9b2c5b3 commit 657f7b9

2 files changed

Lines changed: 12 additions & 4 deletions

File tree

src/cli.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,11 @@ export function getPrettierVersion(): string {
102102
return packageJson.version;
103103
}
104104

105+
function getEslintBinPath(): string {
106+
const eslintPackageJsonPath = require.resolve('eslint/package.json');
107+
return path.join(path.dirname(eslintPackageJsonPath), 'bin', 'eslint.js');
108+
}
109+
105110
function parseFormatterMode(value: unknown): FormatterMode | undefined {
106111
if (value === null || value === undefined) {
107112
return undefined;
@@ -200,11 +205,12 @@ export async function run(verb: string, files: string[]): Promise<boolean> {
200205
const resolvedEslintConfig =
201206
findNearestEslintConfig(options.targetRootDir) ||
202207
path.join(options.mwtsRootDir, 'eslint.config.js');
208+
const eslintBinPath = getEslintBinPath();
203209
if (resolvedEslintConfig) {
204210
eslintFlags.unshift('--config', resolvedEslintConfig);
205211
}
206212
try {
207-
await execa('eslint', eslintFlags, {
213+
await execa('node', [eslintBinPath, ...eslintFlags], {
208214
stdio: 'inherit',
209215
});
210216
return true;
@@ -231,11 +237,12 @@ export async function run(verb: string, files: string[]): Promise<boolean> {
231237
const resolvedEslintConfig =
232238
findNearestEslintConfig(options.targetRootDir) ||
233239
path.join(options.mwtsRootDir, 'eslint.config.js');
240+
const eslintBinPath = getEslintBinPath();
234241
if (resolvedEslintConfig) {
235242
eslintFlags.unshift('--config', resolvedEslintConfig);
236243
}
237244
try {
238-
await execa('eslint', eslintFlags, {
245+
await execa('node', [eslintBinPath, ...eslintFlags], {
239246
stdio: 'inherit',
240247
});
241248
return true;

test/kitchen.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,9 @@ describe('🚰 kitchen sink', () => {
141141
);
142142

143143
assert.notStrictEqual(res.status, 0);
144-
assert.ok(toString(res.stdout).includes('no-console'));
145-
assert.ok(!toString(res.stdout).includes('parserOptions.project'));
144+
const output = `${toString(res.stdout)}${toString(res.stderr)}`;
145+
assert.ok(output.includes('no-console'));
146+
assert.ok(!output.includes('parserOptions.project'));
146147

147148
if (!keep) {
148149
tmpDir.removeCallback();

0 commit comments

Comments
 (0)