43 votes

Système de compilation CoffeeScript de Sublime Text: `env: node: aucun fichier ou répertoire de ce type`

Je suis en train de configurer un CoffeeScript système de construction dans Sublime Text 3, mais je reçois l'erreur suivante:

env: node: No such file or directory
[Finished in 0.0s with exit code 127]
[cmd: ['coffee', '-o','/Users/jcourtdemone/Sites/autotempest.com/new_design_sandbox/static/script', '-cw', '/Users/jcourtdemone/Sites/autotempest.com/new_design_sandbox/static/coffee']]
[dir: /Users/jcourtdemone/Sites/autotempest.com/new_design_sandbox/static/coffee]
[path: /usr/bin:/bin:/usr/sbin:/sbin]

Mon système de construction ressemble à ceci:

{
    "name": "Coffee - AT",
    "cmd": ["coffee","-o","${project_path:${folder}}/static/script","-cw","${project_path:${folder}}/static/coffee"],
    "selector": "source.coffee",
    "path":"/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/lib/node_modules/coffee-script/bin"
}

Deux choses d'étrange à ce sujet.

1) Il dit qu'il cherche en /usr/bin où un lien symbolique vers coffee existe.

2) en Raison de (1), j'ai remplacé $PATH d'inclure l'emplacement de coffee qui /usr/local/lib/node_modules/coffee-script/bin, mais pour une raison quelconque, $PATH n'est pas remplacée correctement, c'est de coller avec la valeur par défaut $PATH.

Choses à noter:

i) j'ai vérifié que tous les chemins sont corrects et passe généralement par l'intermédiaire d'un régulier du terminal de commande.

ii) Essayé avec un "shell": true variable dans le système de génération.

iii) j'ai un autre système de construction pour Boussole comme cela que fonctionne très bien.

Quelqu'un courir dans des problèmes similaires ou des questions? Des idées?

97voto

MattDMo Points 21024

Dans le Terminal, tapez which node, puis de créer un lien symbolique à cet endroit, en /usr/bin. Par exemple, si node de vie en /usr/local/bin, créez le lien comme ceci:

sudo ln -s /usr/local/bin/node /usr/bin/node

Si vous regardez le code source de votre coffee script, vous trouverez probablement que la première ligne est quelque chose le long des lignes de:

#!/usr/bin/env node

Code de sortie 127 Sublime signifie que l' env commande a échoué, donc dans votre cas, le système de construction est de trouver coffee, mais il ne peut pas s'exécuter parce que le node binaire n'est pas dans le Sublime du chemin de recherche par défaut.

Il y a deux façons de redéfinir le chemin de recherche par défaut pour Sublime. La première (et la plus simple) est de toujours ouvrir à partir de la ligne de commande en utilisant le haut- subl commande. Si vous êtes un OS X, les utilisateurs de puissance et ne me dérange pas de jouer avec les paramètres importants du système, consultez mon post sur unix.SE sur comment modifier la valeur par défaut /usr/bin:/bin:/usr/sbin:/sbin chemin que vous voyez. Attention, si vous ne faites pas les choses correctement, vous risquez de casser votre système. Toutefois, si vous êtes sous Mountain Lion (10.8.X) et vous suivez les instructions à la lettre, tout devrait bien se passer. (Je n'ai pas mis à jour de Mavericks, donc aucune garantie que cela fonctionnera avec cette version.)

30voto

Storm-Eyes Points 341

Comment résoudre le problème sous un Système Ubuntu

Le fait est "café" commande d'appel /usr/bin/node de poursuivre son travail, cependant, l'original, le "nœud" de commande pour le nœud de l'application sur un système Ubuntu est modifié à partir de "nœud" à "nodejs" pour éviter de nom contradictoires. C'est la raison, l'interface de commande compatible vous "/usr/bin/env: nœud: No such file or directory". chaque fois que vous tapez

$ coffee

Pour résoudre le bug, il suffit de laisser le shell trouver quelque chose appelé "nœud" à sa valeur par défaut de la recherche de chemin, et ce soi-disant "nœud" fera la promotion de nodejs. La commande "nodejs" qui se trouve sous le chemin /usr/bin/nodejs.

Nous utiliserons le symbole de lien "nœud" avec nodejs, et de placer le lien "nœud" dans le défaut de la recherche de chemin, de sorte que le shell va le trouver.

sudo ln -s /usr/bin/nodejs /usr/bin/node 

Mais attention, assurez-vous que vous n'avez PAS d'autre "nœud" de commande dans le répertoire /usr/bin/, vous pouvez vérifier en essayez d'exécuter

$ which node

Je ne sais PAS quoi faire si vous avez installé un autre "nœud" de l'application.

24voto

wnasich Points 141

Dans Ubuntu, vous pouvez installer le paquet nodejs-legacy

 sudo apt-get install nodejs-legacy
 

ce paquet vient de créer un lien symbolique vers nodejs binaire

2voto

caulitomaz Points 51

J'ai eu le même problème avec Sublime Text 2. La création de cette construction sublime a fonctionné pour moi:

 {
"cmd": ["coffee", "-c", "$file"],
"selector" : "source.coffee",
"path" : "/usr/local/lib/node_modules/coffee-script/bin/:/usr/local/bin:$PATH"  
}
 

1voto

VIANA Points 1

Le code suivant a fonctionné pour moi dans Ubuntu 14.04:

 **$ sudo apt-get install NodeJS-legacy** 
 

L'autre problème était lié aux frameworks de contrôle de version tels que, par exemple: gulp -v le même code a également résolu ce problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X