Nœud de script exécutable ne fonctionne pas sur Mac : env: nœud\r: Aucun fichier ou répertoire
J'ai créé mon nœud de script exécutable à exécuter certaines tâches grunt. Sur Windows, mon nœud de script fonctionne très bien. Mais sur Mac OS X (Yosemite), ça ne fonctionne pas.
Mon nœud de script a été publié sur Windows.
Mon nœud de script est installé via npm commande :
npm install -g task-app
Mon nœud de script ont cette première ligne :
#! /usr/bin/env node
J'ai essayé beaucoup de solutions pour résoudre mon problème, mais je suis toujours bloqué.
Voici ces solutions que j'ai utilisé :
- désinstaller et réinstaller Node.js
- exécuter cette commande pour
créer un lien pour le nœud : sudo ln -s /usr/bin/nodejs
/usr/local/bin/node - mis mon chemin avec cette commande : export PATH=$PATH:/usr/local/bin/node
Avez-vous d'autres solutions à proposer ?
EDIT :
le début de mon script :
#! /usr/bin/env node
var grunt = require('grunt');
//Get parameters from command line
var args = process.argv.splice(2);
[...]
J'ai eu ce problème lors de l'installation de npmjs.com/package/json-mock-server sur macos avec du fil, mais pas avec les mnp. Dans les deux installations, certains fichiers du package crlf à la fin, mais il ne semble pas à la matière lors de l'installation avec la ngp. Je vais créer une nouvelle question à propos de cette un lien ici.
OriginalL'auteur PauloDev | 2015-05-20
Vous devez vous connecter pour publier un commentaire.
Après tout, j'ai trouvé la solution à mon problème.
Que mon nœud de script fichier a été créé sur Windows, le fichier est en format ms-DOS (fin de ligne, en format DOS, je pense). Donc, j'ai utilisé un module qui permet de convertir un fichier à un format unix :
travailler avec ionique 2, merci
Correction du problème sur mon mac El Capitan à partir de l'une j'ai commencé sur mon pc à la maison, une bouée de sauvetage!
OriginalL'auteur PauloDev
Vous pouvez également utiliser vim:
Confirmer DOS style des retours à la ligne Unix style retours à la ligne.
OriginalL'auteur JohnQ
Il y a un problème avec les sauts de ligne dans votre script. Assurez-vous que
#!/usr/bin/env node
est suivie par\n
(unix) au lieu de\r\n
(windows/dos de style).Pour corriger cela, utilisez le
tr
commande pour supprimer\r
's à partir de votre fichier:J'ai essayé ta commande mais ça ne marche pas quand j'execute ma commande de nouveau. Je n'ai pas de retours à la ligne après la première ligne de mon nœud de script. Prendre un coup d'oeil dans mon premier post.
OriginalL'auteur david_p
Comme PauloDev dit ci-dessus, c'est un Mac/Windows ligne se terminant le problème. D'élaborer, si vous utilisez
nvm
vous aurez besoin pour localiser votre script (dans mon cas, je suis en utilisantexpress-mvc-generator
):OriginalL'auteur ow3n