`node-pre-gyp install --fallback-to-build` a échoué lors de l'installation de MeanJS sur OSX
Je viens de m'acheter un livre Mac après avoir utilisé Windows pendant longtemps.
J'essayais de travailler sur un projet MeanJS sur lequel j'avais déjà travaillé. Faire npm install
sur le projet génère une erreur
Failed to execute '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/Aayush/Work/lishn/repo/lishn-alpha/node_modules/grunt-node-inspector/node_modules/node-inspector/node_modules/v8-debug/build/debug/v0.4.6/node-v46-darwin-x64/debug.node --module_name=debug --module_path=/Users/Aayush/Work/lishn/repo/lishn-alpha/node_modules/grunt-node-inspector/node_modules/node-inspector/node_modules/v8-debug/build/debug/v0.4.6/node-v46-darwin-x64' (1)
npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v4.1.1
npm ERR! npm v2.14.4
npm ERR! code ELIFECYCLE
>
> npm ERR! v8-debug@0.4.6 install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the v8-debug@0.4.6 install script 'node-pre-gyp install --fallback-to-build'.
npm ERR! This is most likely a problem with the v8-debug package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! node-pre-gyp install --fallback-to-build
npm ERR! You can get their info via:
npm ERR! npm owner ls v8-debug
npm ERR! There is likely additional logging output above.
J'ai essayé de vider le cache.
J'ai essayé d'installer node-pre-gyp avec Sudo
et --unsafe-perm
J'ai aussi essayé d'installer à nouveau un projet MEAN, avec la même erreur.
Je n'arrive pas à trouver quel est le problème ici.
Node Version - 5.0.0
NPM Version - 3.3.10
j'ai essayé de mettre à niveau node-gyp:
npm install -g node-gyp
Cela a fonctionné pour moi.
Je trouve la solution ici , j'espère que cela peut aider.
russfrisch a commenté il y a 4 jours:
Je vivais le même problème. Changer de version pour grunt-node-inspector d'ajouter un "> =" au lieu d'un "~" a donné ceci à travaille pour moi.
Lien vers la page github où j'ai trouvé cette solution.
Cela ne fonctionnera peut-être pas pour tout le monde, mais j’ai mis à jour le noeud et il a résolu le problème pour moi alors qu’aucun des éléments ci-dessus ne fonctionnait.
Très bien, après un certain débogage, les dépendances suivantes utilisent une ancienne version de touch
:
./node_modules/bower/node_modules/decompress-Zip/package.json: "touch": "0.0.3"
./node_modules/bower/node_modules/lockfile/package.json: "touch": "0"
./node_modules/gulp-nodemon/node_modules/nodemon/package.json: "touch": "1.0.0",
./node_modules/gulp-nodemon/node_modules/touch/package.json: "touch": "./bin/touch.js"
./node_modules/nodemon/package.json: "touch": "~0.0.3",
Grâce à cela, j’ai pu faire travailler MeanS avec le noeud 5.
Voici l'historique des commandes que j'ai exécutées:
git clone https://github.com/meanjs/mean.git
cd mean
nvm install 5
nvm use 5
npm install
which node-gyp
npm install -g node-pre-gyp
Sudo xcodebuild -license
npm install
Avait quelques problèmes et puis:
J'ai ajouté la ligne suivante:
#!/usr/bin/env node
En haut du fichier ./mean/node_modules/.bin/touch
Et alors:
npm install
Et bien sûr, ajoutez peut-être un Sudo rm -rf ./node_modules && npm cache clean
avant de réessayer.
Cela semble être un problème avec la mise à niveau de mon nœud. Comment jamais je l'ai résolu avec l'approche suivante.
Commencez par désinstaller le client, effacer le fichier et réinstaller avec ces commandes
npm uninstall -g @angular/cli
npm cache clean
npm install -g @angular/cli
Puis installez node-pre-gyp
npm install -g node-pre-gyp
Redémarrez votre terminal et voyez si le problème est résolu.
Comme @ ocean800 a déclaré que j'ai mis à jour le noeud. La solution ci-dessous est pour Ubuntu 16.04 qui a fonctionné pour moi, mais quelque chose de similaire sur OSX peut résoudre ce problème.
Sur Ubuntu 16.04, ce qui a fonctionné pour moi était la mise à niveau du noeud
mise à jour de nodejs sur Ubuntu 16.04
Je reproduis la solution à partir du lien ci-dessus
Pour mettre à jour, vous pouvez installer n
Sudo npm install -g n
Alors juste:
Sudo n latest
ou une version spécifique
Sudo n 8.9.0
Puis essayez et installez
Sudo npm install <package>
J'espère que mon scénario pourra aider quelqu'un d'autre ... J'ai eu le même problème avec le paquet bcrypt. Premièrement, j'ai essayé avec npm i -g node-gyp
comme suggéré par Anne mais le problème a persisté. Ensuite, j'ai relu le message d'erreur pour mieux comprendre le problème et découvert que le script ne permet pas de créer le package à partir de rien, car une version précompilée n'existe pas. En particulier, il ne peut pas trouver la commande g ++, j'ai donc résolu d'installer le paquet build-essential
avec Sudo apt install build-essential -y
.
exécutez-vous l'exemple à partir du dossier node_modules?
Ils ne sont pas censés être courus à partir de là.
Créez plutôt le fichier suivant sur votre projet:
post-data.js
var Curl = require( 'node-libcurl' ).Curl,
querystring = require( 'querystring' );
var curl = new Curl(),
url = 'http://posttestserver.com/post.php',
data = { //Data to send, inputName : value
'input-arr[0]' : 'input-arr-val0',
'input-arr[1]' : 'input-arr-val1',
'input-arr[2]' : 'input-arr-val2',
'input-name' : 'input-val'
};
//You need to build the query string,
// node has this helper function, but it's limited for real use cases (no support for
array values for example)
data = querystring.stringify( data );
curl.setOpt( Curl.option.URL, url );
curl.setOpt( Curl.option.POSTFIELDS, data );
curl.setOpt( Curl.option.HTTPHEADER, ['User-Agent: node-libcurl/1.0'] );
curl.setOpt( Curl.option.VERBOSE, true );
console.log( querystring.stringify( data ) );
curl.perform();
curl.on( 'end', function( statusCode, body ) {
console.log( body );
this.close();
});
curl.on( 'error', curl.close.bind( curl ) );
Exécuter avec le noeud post-data.js