Сбой установки NPM с помощью node-gyp
У нас проблемы с запуском npm install в нашем проекте. Определенный файл не может быть найден:
fatal error C1083: Cannot open include file: 'windows.h'
Похоже, это происходит из модуля node-gyp:
c: \ Program Files \ nodejs \ node_modules \ npm \ node_modules \ node-gyp \ src \ win_delay_lo ad_hook.c (13):
Неустранимая ошибка C1083: Невозможно открыть включаемый файл: 'windows.h': Нет файла или каталога, к которому можно обратиться [D:\ngs-frontend-next\node_modules\browser-sync\node_module s\socket.io\node_modules\engine.io\node_modules\ws\node_modules\bufferutil\buil d d \binding.sln]
Кажется, что этот узелок является бесконечным источником боли для нас. Сначала он жаловался, что ему нужен Python, поэтому мы установили его. Тогда он жаловался, что ему нужен VCBuild, который мы установили (используя.NET 2.0 SDK), теперь у нас есть эта ошибка. Это похоже на то, как будто ошибки становятся все более и более неясными, и кажется, что мы идем по неверному пути.
Странно то, что у других людей в нашей команде нет проблем с запуском npm-установки.
Полная ошибка выглядит так:
c: \ Program Files \ nodejs \ node_modules \ npm \ node_modules \ node-gyp \ src \ win_delay_lo ad_hook.c (13):
Неустранимая ошибка C1083: Невозможно открыть включаемый файл: 'windows.h': Нет файла или каталога, к которому можно обратиться [D:\ngs-frontend-next\node_modules\browser-sync\node_module s\socket.io\node_modules\engine.io\node_modules\ws\node_modules\bufferutil\buil d d \binding.sln]
Гипер ERR! ошибка сборки gyp ERR! Ошибка стека:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
ошибка с кодом выхода: 1 стек в ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node _modules\node-gyp\lib\build.js:270:23) gyp ERR! стек в emitTwo (events.js:87:13) gyp ERR! стек в ChildProcess.emit (events.js:172:7) gyp ERR! стек в Process.ChildProcess._handle.onexit (внутренняя /child_proces s.js:200:12) gyp ERR! Система Windows_NT 6.1.7601 gyp ERR! команда "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodej s\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "перестроить" gyp ERR! cwd D:\ngs-frontend-next\node_modules\browser-sync\node_modules\socket. io\node_modules\engine.io\node_modules\ws\node_modules\bufferutil gyp ERR! узел -v v4.2.2 gyp ERR! node-gyp -v v3.0.3 gyp ERR! не в порядке npm ПРЕДУПРЕЖДЕНИЕ Необязательный dep сбой, продолжение utf-8-validate@1.2.1gifsicle@3.0.3 postinstall D: \ ngs-frontend-next \ node_modules \ gulp-imagemin \ nod e_modules \ imagemin \ node_modules \ imagemin-gifsicle \ node_modules \ gifsicle node lib / install.js
Выход pacakge.json выглядит так:
{
"name": "Fast-nunjucks",
"version": "0.0.1",
"description": "A simple boilerplate using nunjucks as a template engine",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://github.com/willianjusten/Fast-nunjucks.git"
},
"keywords": [
"nunjucks",
"node",
"gulp",
"stylus"
],
"author": "Willian Justen de Vasconcellos",
"license": "ISC",
"bugs": {
"url": "https://github.com/willianjusten/Fast-nunjucks/issues"
},
"homepage": "https://github.com/willianjusten/Fast-nunjucks",
"devDependencies": {
"autoprefixer-stylus": "^0.7.1",
"browser-sync": "^2.8.2",
"gulp": "^3.9.0",
"gulp-cache": "^0.3.0",
"gulp-concat": "^2.6.0",
"gulp-if": "^1.2.5",
"gulp-imagemin": "^2.3.0",
"gulp-minify-html": "^1.0.4",
"gulp-nunjucks-html": "^1.2.2",
"gulp-order": "^1.1.1",
"gulp-plumber": "^1.0.1",
"gulp-stylus": "^2.0.6",
"gulp-uglify": "^1.2.0",
"gulp-util": "^3.0.6",
"jeet": "^6.1.2",
"kouto-swiss": "^0.11.13",
"minimist": "^1.1.3",
"rupture": "^0.6.1"
},
"dependencies": {
"gulp-install": "^0.6.0"
}
}
23 ответа
Сообщения об ошибках привели меня в замешательство и не помогли полностью устранить ошибки.
README.md для проекта node-gyp лучше справляется со списком инструкций по установке для Unix, Max OS X и Windows.
В системах Windows вы можете выбрать вариант 1 или вариант 2, но главное, что вам нужно установить инструменты сборки Visual C++.
Следующая цитата из раздела установки Windows:
- В Windows:
- Среда сборки Visual C++:
- Вариант 1. Установите инструменты сборки Visual C++ с помощью параметра "Установка по умолчанию".
- Вариант 2. Установите Visual Studio 2015 (или измените существующую установку) и выберите Общие инструменты для Visual C++ во время установки. Это также работает с бесплатными выпусками Community и Express for Desktop.
[Только для Windows Vista / 7] требуется.NET Framework 4.5.1- Установите Python 2.7 (v3.xx не поддерживается) и запустите
(или см. ниже для дальнейших инструкций по определению правильной версии и пути Python.)npm config set python python2.7
- Запустите cmd,
npm config set msvs_version 2015
Если указанные выше действия не помогли вам, ознакомьтесь с рекомендациями Microsoft по Node.js для Windows, чтобы получить дополнительные советы.
Общие инструкции по настройке Python:
Если у вас установлено несколько версий Python, вы можете определить, какую версию Python использует node-gyp, установив переменную '--python':
$ node-gyp --python /path/to/python2.7
Если node-gyp вызывается с помощью npm, и у вас установлено несколько версий Python, то вы можете установить в конфигурационном ключе 'python' npm соответствующее значение:
$ npm config set python /path/to/executable/python2.7
Успешно настроил мою систему, следуя приведенным выше инструкциям.
Системная информация
λ ver
Microsoft Windows [Version 6.1.7601]
λ node -v
v6.2.0
λ npm -v
3.9.2
Ссылки на соответствующие инструменты / статьи:
Я пробовал все вышеперечисленные решения, но ни одно из них не помогло. Моя проблема заключалась в некоторых файлах в корневом каталоге, которые мне пришлось удалить:
package-lock.json
и
yarn.lock
и
yarn-error.log
после удаления этих файлов я запустил:
npm cache clean --force
затем я выполнил команду:
npm install
и ошибка исчезла
Попробуйте установить снова с --force option
:
npm install --force
Если это не работает, попробуйте обновить npm глобально:
npm update -g npm
и попробуйте еще раз с --force
вариант.
У меня была почти такая же проблема на Mac. У меня было много сообщений об ошибках, связанных со спамом, но, наконец, я осознал проблему, это было несоответствие версии ...
Описание:
Ошибка установки npm при установке gyp (node-gyp):
npm ERR! gyp ERR! node -v v16.2.0
npm ERR! gyp ERR! node-gyp -v v3.8.0
npm ERR! gyp ERR! not ok
npm ERR! Build failed with error code: 1
Решение:
понизьте npm / node до стабильной версии!
Пытаться:
Установите 'n':
npm i -g n
Переход на более раннюю версию npm:
sudo n stable
Повторить
npm install
и это работает!
В последний раз, когда я видел подобную ошибку, это было, потому что я использовал неправильную версию npm
и / или node
для одной из моих зависимостей. Попробуйте обновить их и попробуйте снова.
Прежде чем пытаться снова удалить node_modules
каталог.
Возможно, вам придется выяснить, какие версии npm
а также node
ваши зависимости нужны. Вы можете попробовать последние версии всех ваших зависимостей, узла и npm.
Проверьте, какие версии используют ваши коллеги.
Какую ОС вы используете? Это может оказать влияние, так как версия CLANG может отличаться.
Если вы используете «node-sass», обновите его до версии 5.0.0, убедитесь, что у вас установлены инструменты сборки 2017 и Python 3, и введите эти команды перед установкой npm.
npm config set msvs_version 2017
npm config set python /path/to/executable/python39/python.exe
Для этого решил ( OS X):
rm -rf ~/.node_gyp and
sudo npm install -g node-gyp@3.4.0
cd /usr/local/lib sudo ln -s ../../lib/libSystem.B.dylib libgcc_s.10.5.dylib
brew install gcc
npm install
Удалите package-lock.json Затем перезагрузите компьютер (если были внесены изменения, чтобы они вступили в силу), затем запустите
npm install --legacy-peer-deps
Установка VC++ Build Tools Technical Preview [только для Windows 7] требует.NET Framework 4.5.1
Установите Python 2.7 и добавьте его в свой PATH, в настройках npm python python2.7
Запустите конфигурацию cmd, npm, установите msvs_version 2015 --global (вместо npm устанавливайте [имя пакета] --msvs_version=2015 каждый раз.)
4. ТАК МНОГО npm установить:tada:
Попробуйте удалить текущую папку node_modules и запустить команду как обычный пользователь, не администратор или root
Эй, пожалуйста, попробуйте установить инструменты сборки Windows (глобальный пакет npm)
Это решит вашу проблему:-) После этого вы сможете использовать команду npm install.
Опубликуйте мое решение здесь на тот случай, если у кого-то вроде меня, использующего Windows 10, все еще будет ошибка после установки многих инструментов сборки, связанных с Microsoft.
Все, что вам нужно:
Windows 10 64 бит
Python 2.7.x
Я пробовал Visual Studio 2015 раньше, но он не работал вообще.
Прежде всего, я удаляю все инструменты сборки, связанные с Microsoft. (Если вы ничего не установили, чтобы попытаться решить эту проблему ранее, пропустите этот шаг.)
Установите Visual Studio 2013.
Конфиг npm как @Sourav сказал:
Конфиг python:
npm config set python /path/to/python2.7
Конфигурация msvs_version:
npm config set msvs_version 2013
Запустить npm install
или команда npm, в которой возникает эта ошибка. Меня устраивает!
Кстати, это решение отсюда.
На основе README node-gyp обновите npmnpm i npm -g
, и добавит более новую версию node-gyp.
Подсказка: если вы работаете в Windows, выполнитеnpm install --global --production windows-build-tools
из PowerShell с повышенными привилегиями или CMD.exe (запускается от имени администратора).
Я работал над более старым проектом и столкнулся с этой ошибкой (или очень похожей с node-gyp) из-за блокировки пакета для более старой версии node. После перехода на эту версию я смог без проблем запустить npm install.
Удаление node-sass и установка sass решили эту проблему для меня.
npm удалить узел-sass
НПМ я нахально --сохранить
Для Windows 8 или 10:
Предполагая, что узел и npm уже установлены.
Моя версия узла и npm (На момент написания этого ответа):
узел: 8.9.4
нпм: 5.6.0
Сначала установите Python 2.x
Убедитесь, что он доступен по пути
Установить установщик Visual Studio
После установки запустите его
- Новый интерфейс откроет его, где вы можете выбрать различные варианты.
- Теперь выберите " Build Tools for Visual Studio 2017" из доступных вариантов и установите его. Вам не нужно устанавливать Visual Studio.
Я застрял с той же ошибкой на моем компьютере с Windows после большого количества устранения неполадок с различными ответами стека. Я не смог ее исправить, позже сделал следующее, что заставило ее работать правильно.
- очистить кеш npm --force
- откройте проводник в адресной строке вставьте %appdata%, затем удалите папки npm,npm-cache
- удалил nodejs и переустановил последнюю версию.
- тогда установка npm работала нормально для меня
Я использую пряжу, поэтому я просто побежал
yarn global add node-gyp
для глобальной установки без использования npm, и это сработало. Я больше не сталкиваюсь с ошибкой
Для тех, кто использует npm, можно сделать это с помощью
npm install -g node-gyp
.
Убедитесь, что вы знаете, что запуск этих команд приведет к глобальной установке node-gyp в вашей среде, возможно, за пределами вашего текущего приложения. И если вы запускаете какие-либо другие приложения в аналогичной среде, которые зависят от какой-либо конкретной версии
node-gyp
, вы можете столкнуться с некоторыми проблемами.
Установите версию узла 14.20.0 , при установке будет возможность установить необходимые инструменты, такие как шоколад, Python и т. д. Нажмите на эту опцию, и это должно решить проблему.
У меня были похожие проблемы на моем проекте. В моем случае удаление
package-lock.json
файл и позволить ему воссоздать помогло.
это то, что решило это для меня
sudo npm install -g npm
npm cache clean --force
npm install
Отредактируйте или удалите файл package-lock.json и запустите npm install