Яма node-sass

NPM

Что касается внутреннего интерфейса, я чувствую, что большинство из них попали в ловушку этого.Все зависимости установлены, но эту зависимость нельзя установить.

Прежде всего, первая проблема, с которой необходимо столкнуться.На самом деле, самая большая причина, по которой эта зависимость не может быть установлена, заключается в том, что при компиляции и установке ему необходимо загрузить установочный пакет.Этот установочный пакет находится на github.resource serverrawgithubusercontentСложно подключиться, что также напрямую приводит к невозможности установки зависимостей.

Решение 1: Зеркало Taobao также является наиболее прямым решением.Адрес установочного пакета в node-sass на зеркале Taobao был изменен на адрес установочного пакета в зеркале Taobao, и установка будет гладкой. Это также официальное решение проблемы с сетью.

npm install -g mirror-config-china --registry=http://registry.npm.taobao.org
npm install node-sass

такой же--registryилиcnpmподходят для решения этим методом.

Решение 2: Некоторые люди могут не иметь возможности загружать пакеты в зеркало Taobao напрямую через зеркало, потому что команда использует package-lock.json для стандартизации зависимостей, используемых объединенной командой, но есть решение этой проблемы, укажите вручнуюnode-sassАдрес используемого инсталляционного пакета. пройти черезnpmrc:

npm config set sass_binary_site "https://npm.taobao.org/mirrors/node-sass/"

Переменные среды также могут быть установлены:

set SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/

непосредственно черезnpm installВы также можете использовать только зеркало Taobao для загрузки установочного пакета.

Решение 3: Вы можете указать путь загрузки, затем вы можете сначала загрузить установочный пакет, а затем указать установочный пакет для установки. Иди первымhttps://github.com/sass/node-sass/releases/tag/{version}илиhttps://npm.taobao.org/mirrors/node-sass/Загрузите соответствующий установочный пакет ниже:{os}-{module-version}_bingding.node, конкретную версию можно получить, запросив следующую таблицу в соответствии с вашей версией nodejs.

NodeJS Supported node-sass version Node Module
Node 15 5.0+ 88
Node 14 4.14+ 83
Node 13 4.13+, <5.0 79
Node 12 4.12+ 72
Node 11 4.10+, <5.0 67
Node 10 4.9+ 64
Node 8 4.5.3+, <5.0 57
Node <8 <5.0 <57

Следующие шаги аналогичны решению 2, которые приведены здесь.npmrcреформа

npm config set sass_binary_path [path]

Решение 4: Поскольку основной причиной является сеть кунг-фу, ее можно только перевернуть. Сначала настройте системный прокси, а затем настройте прокси npm.

npm config set proxy [system proxy]

После завершения загрузки проблема решена только наполовину. Загруженный установочный пакет все еще необходимо скомпилировать. Node-sass требуется некоторая среда компиляции, чтобы обеспечить завершение компиляции. Вот простое решение:

npm install -g node-gyp
npm install --global --production windows-build-tools

Это поможет вам установить соответствующую среду компиляции и решить большинство проблем, включая инструменты сборки vs и python.

Есть скрытая небольшая яма также о узле-GYP. Если ваш узел-GYP не является глобальной установкой, этоpackage-lock.jsonЛучше всего проверить версию node-gyp, например, для меня node-gyp ограничен старой версией, поэтому самая большая проблема в том, что версия инструмента сборки, которую вызывает сам node-gyp, сделана He решил, что некоторые старые версии node-gyp определенно не поддерживают инструменты сборки более высоких версий, и соответствующую поддержку можно найти в node-gyp'sMSVSVersion.pyсерединаversion_mapНашел в, возьмем для примера мою 3.8.0:

  version_map = {
    'auto': ('14.0', '12.0', '10.0', '9.0', '8.0', '11.0'),
    '2005': ('8.0',),
    '2005e': ('8.0',),
    '2008': ('9.0',),
    '2008e': ('9.0',),
    '2010': ('10.0',),
    '2010e': ('10.0',),
    '2012': ('11.0',),
    '2012e': ('11.0',),
    '2013': ('12.0',),
    '2013e': ('12.0',),
    '2015': ('14.0',),
  }

Видно, что здесь поддерживается только до vs2015, поэтому я вручную установил инструмент сборки vs2015 для успешной компиляции. Здесь также можно указать вручнуюmsvs_versionДля сборки версии инструмента, но в большинстве случаев достаточно auto.

npm config set msvs_version [version]

сделать это, выполнитьnpm installСуществует высокая вероятность того, что проблем не будет. Если есть проблема, пожалуйста, поделитесь журналом ошибок выхода, чтобы увидеть, есть ли в нем другие скрытые ямы.