Prettier plugin can't find node executable

Aperta
#2,707 2 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
52/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
node.js, typescript

Direzione di ricerca

Inizia riproducendo il malfunzionamento con la configurazione Maven spotless:verify mostrata e analizza come l’integrazione di Prettier risolve l’eseguibile node. Il problema è risolto quando viene rilevato un eseguibile node disponibile nel PATH di sistema senza richiedere che nodeExecutable sia codificato direttamente, mentre la configurazione esplicita esistente continua a funzionare.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

I have prettier configured within a Maven spotless-maven-plugin block:

    <plugin>
        <groupId>com.diffplug.spotless</groupId>
        <artifactId>spotless-maven-plugin</artifactId>
        <version>2.44.3</version>
        <configuration>
            <typescript>
                <includes>
                    <include>**/*.ts</include>
                </includes>
                <prettier>
                    <config>
                        <!-- ... -->
                    </config>
                </prettier>
            </typescript>
        </configuration>

When I run mvn spotless:verify, I get an error:

[ERROR] Failed to execute goal com.diffplug.spotless:spotless-maven-plugin:2.44.3:apply (default-cli) on project my-project: Unable to format file <path-to>/some-file.ts: Can't automatically determine node executable and none was specifically supplied!
[ERROR] 
[ERROR] Spotless was unable to find a node executable.
[ERROR] Either specify the node executable explicitly or make sure it can be found next to the npm executable.

I do have node and npm installed:

% which node
/opt/homebrew/opt/node@16/bin/node
% node --version
v16.20.2
% which npm 
/opt/homebrew/opt/node@16/bin/npm
% npm --version
8.19.4

I can get around this by specifying the location of the node executable:

<prettier>
    <nodeExecutable>/opt/homebrew/opt/node@16/bin/node</nodeExecutable>
    <!-- ... -->
</prettier>

.. but that's not something I should have to do and it isn't something that will work for everyone on our team who possibly have different versions, have installed in a different path, use a different OS, etc.

If the node executable is on the system path, that's what should be used.

Lingua principale
Java
Stelle
5.7k
Fork
560
Merge medio
1g 13h
PR unite (30g)
43

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di diffplug/spotless

Tutte le issue di diffplug/spotless

Issue simili

Altre issue su Java

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.