`node -pre-gyp install --fallback-to-build` не удалось во время установки MeanJS на OSX

Я только что купил себе Mac-книгу после долгого использования Windows.

Я пытался работать над проектом MeanJS, над которым я работал. Выполнение npm install в проекте вызывает ошибку

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! [email protected] install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] 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.

Я попытался очистить кеш.

Я попытался установить node -pre-gyp с sudo и --unsafe-perm

Я также попытался обновить проект MEAN с той же ошибкой.

Кажется, я не могу найти, в чем проблема.

Node Version - 5.0.0

NPM Version - 3.3.10

Ответы

Ответ 1

я попытался обновить узел-гип:

sudo npm install -g node-gyp

Это сработало для меня.

Я нахожу решение здесь, я надеюсь, что это может помочь.

Ответ 2

russfrisch прокомментировал 4 дня назад:

Я испытывал эту же проблему. Изменение в версии для grunt-node-inspector для добавления "> =" вместо "~" позволило мне сработать.

Ссылка на страницу github, где я нашел это решение.

fooobar.com/questions/357661/...

Ответ 3

Это может не сработать для всех, но я обновил node, и он исправил проблему для меня, когда ни одно из вышеприведенных действий не выполняло

Ответ 4

Это кажется проблемой с моим обновлением узла. Как только я решил это следующим подходом.

Сначала удалите cli, очистите cashe и переустановите с помощью этих команд

npm uninstall -g @angular/cli
npm cache clean
npm install -g @angular/cli

Затем установите node-pre-gyp

npm install -g node-pre-gyp

Перезапустите свой терминал и посмотрите, решена ли проблема.

Ответ 5

Хорошо, что после некоторой отладки следующие зависимости используют более старую версию 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",

С этим я смог получить meanJS, работающий с node 5.

Вот история команд, которые я запускал:

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

Были некоторые проблемы, а затем:

Я добавил следующую строку:

#!/usr/bin/env node

В начало файла ./mean/node_modules/.bin/touch

И затем:

npm install

И, конечно, возможно, запустите sudo rm -rf ./node_modules && npm cache clean перед повторной попыткой.

Ответ 6

Как сказал @ocean800 я обновил узел. Приведенное ниже решение предназначено для Ubuntu 16.04, которая работала для меня, но что-то подобное в OSX может решить эту проблему.

В Ubuntu 16.04 у меня работало обновление узла

обновление nodejs в Ubuntu 16.04

Я тиражирую решение по ссылке выше

Чтобы обновить, вы можете установить н

sudo npm install -g n

Тогда просто:

sudo n latest

или конкретная версия

sudo n 8.9.0

Тогда попробуйте и установите

sudo npm install <package>

Ответ 7

Я пережил ту же проблему, решенную после многих усилий. Это из-за версии npm не совместимой с версией gprc. Поэтому нам нужно обновить npm.

npm update
npm install 

Ответ 8

Надеюсь, что мой сценарий может помочь кому-то еще. У меня была такая же проблема с пакетом bcrypt. Во-первых, я попытался с npm я -g node-gyp как предложено Анной, но проблема осталась. Затем я снова прочитал сообщение об ошибке, чтобы лучше понять проблему, и обнаружил, что сценарий не может собрать пакет с нуля - поскольку предварительно скомпилированной версии не существует. В частности, он не может найти команду g++, поэтому я решил установить пакет build-essential с помощью sudo apt install build-essential -y.

Ответ 9

вы запускаете пример из папки node_modules?

Они не должны быть запущены оттуда.

Вместо этого создайте следующий файл в своем проекте:

пост-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 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 ) );

Запустить с узлом post-data.js

ссылка: https://github.com/JCMais/node-libcurl/issues/98

Ответ 10

У меня работает следующая команда:

sudo npm i -g node-pre-gyp

Ответ 11

Я тоже решил эту проблему: просто переустановите узел в версию LTS с помощью nvm:

nvm install --lts

nvm use --lts

Тогда rm -rf node_modules и npm i

Ответ 12

Попробуйте это

sudo chown -R $(whoami) ~/.npm

sudo chown -R $(whoami)/usr/local/lib

sudo chown -R $(whoami)/usr/local/bin

Затем повторите команду без sudo. например

npm install -g [email protected]

Проверьте эту ссылку для более подробной информации