Не удается установить gulp-sass

Я пытаюсь научиться использовать gulp / sass / и все другие забавные инструменты с Nodejs, и у меня возникла проблема с установкой gulp-sass. Процесс, который я использую для установки всего:

1.  Start Git Bash in the project folder
2.  npm init
3.  npm install gulp -g
4.  npm install gulp --save-dev
5.  npm install gulp-sass <- this is where I get errors

Как только я добираюсь до пятого шага, я получаю следующую ошибку:

$ npm install gulp-sass
npm WARN package.json project@1.0.0 No repository field.
npm WARN package.json project@1.0.0 No README data
-
> node-sass@3.2.0 install     \\primary\home\mendsley\profile\Desktop\project\node_modules\gulp-  sass\node_modules\node-sass
> node scripts/install.js

'\\primary\home\mendsley\profile\Desktop\project\node_modules\gulp-   sass\node_modules\node-sass'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported.  Defaulting to Windows directory.
module.js:338
throw err;
      ^
Error: Cannot find module 'C:\Windows\scripts\install.js'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
at node.js:814:3
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "c:\\Program Files\\nodejs\\node.exe"     "c:\\Users\\mendsley\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js"     "install" "gulp-sass"
npm ERR! node v0.12.1
npm ERR! npm  v2.13.1
npm ERR! code ELIFECYCLE

npm ERR! node-sass@3.2.0 install: `node scripts/install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-sass@3.2.0 install script 'node scripts/install.js'.
npm ERR! This is most likely a problem with the node-sass package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node scripts/install.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls node-sass
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     \\primary\home\mendsley\profile\Desktop\project\npm-debug.log

Я пытаюсь сделать это на своем рабочем компьютере, поэтому я не уверен, что это имеет значение. Системный администратор говорит, что не должно быть никаких проблем, и у других людей нет проблем с тем же пакетом... и, разговаривая с ними, они не предлагают никакой помощи. Я попробовал все на моем личном ноутбуке и gulp-sass Устанавливается просто отлично, так что это что-то с моим рабочим ПК.

Сначала я думал, что это проблема с путями, но тогда почему другие пакеты устанавливаются нормально?

Я удалил / переустановил Nodejs, но это не помогло.

У кого-нибудь есть идея?

Заранее спасибо!

4 ответа

Решение

Ваше первое предположение было правильным, так как это вопрос имени пути. Из сообщения об ошибке:

UNC-пути не поддерживаются. По умолчанию используется каталог Windows.

Npm необходимо для доступа \\primary\home\mendsley\...\node_modules\node-sass чтобы выполнить скрипт установки gulp-sass. Но этот путь является путем UNC (Uniform Naming Convention) и поэтому не поддерживается.

Как следствие, вместо команды npm по умолчанию используется C:/Windows, и она пытается выполнить сценарий установки gulp-sass (install.js), но этот сценарий, как вы можете догадаться, отсутствует в этом каталоге.

Это может быть и адская проблема зависимостей со старой версией NodeJS или NPM. gulp-sass зависит от node-sass, что, в свою очередь, зависит от других пакетов, а также от правильной версии NodeJS и NPM. Для версии 0.7.3 полные зависимости выглядят так:

├─┬ gulp-sass@0.7.3 │ ├── map-stream@0.1.0 │ └─┬ node-sass@0.9.6 │ ├─┬ chalk@0.5.1 │ │ ├── ansi-styles@1.1.0 │ │ ├── escape-string-regexp@1.0.3 │ │ ├─┬ has-ansi@0.1.0 │ │ │ └── ansi-regex@0.2.1 │ │ ├─┬ strip-ansi@0.3.0 │ │ │ └── ansi-regex@0.2.1 │ │ └── supports-color@0.2.0 │ ├── get-stdin@3.0.2 │ ├─┬ mkdirp@0.5.1 │ │ └── minimist@0.0.8 │ ├─┬ mocha@1.21.5 │ │ ├── commander@2.3.0 │ │ ├─┬ debug@2.0.0 │ │ │ └── ms@0.6.2 │ │ ├── diff@1.0.8 │ │ ├── escape-string-regexp@1.0.2 │ │ ├─┬ glob@3.2.3 │ │ │ ├── graceful-fs@2.0.3 │ │ │ ├── inherits@2.0.1 │ │ │ └─┬ minimatch@0.2.14 │ │ │ ├── lru-cache@2.7.3 │ │ │ └── sigmund@1.0.1 │ │ ├── growl@1.8.1 │ │ ├─┬ jade@0.26.3 │ │ │ ├── commander@0.6.1 │ │ │ └── mkdirp@0.3.0 │ │ └─┬ mkdirp@0.5.0 │ │ └── minimist@0.0.8 │ ├── nan@1.3.0 │ ├── node-sass-middleware@0.3.1 │ ├── node-watch@0.3.5 │ ├── object-assign@1.0.0 │ ├─┬ sinon@1.10.3 │ │ ├─┬ formatio@1.0.2 │ │ │ └── samsam@1.1.3 │ │ └─┬ util@0.10.3 │ │ └── inherits@2.0.1 │ └── yargs@1.3.3

У меня были проблемы с установкой версии 0.7.3 gulp-sass с последними версиями NodeJS 5.2.0 и NPM 3.5.2, Это старая версия gulp-sass работал только со старой версией NodeJS 0.12.9 и NPM 2.14.9 см. также https://github.com/sass/node-sass/issues/1166

Посмотри на это:

"CMD.EXE был запущен с указанным выше путем в качестве текущего каталога. UNC-пути не поддерживаются. По умолчанию используется каталог Windows."

Вы можете использовать pushd команда. В качестве примера установки --global для пользователя домена в сетевой папке:

pushd \\server\yourpath\user\AppData\Roaming\npm

подсказка: вы можете найти правильный путь для глобальных установок npm, используя %appdata%\npm в вашем проводнике cmd отвечает:

Z:\user\AppData\Roaming\npm>

теперь вы можете набрать "npm install node-sass" (или gulp-sass или что-то еще)

Z:\user\AppData\Roaming\npm>npm install node-sass

без --global или -g, на этом пути вы "глобальный"

если закончено, то popd отключить Z:

У меня была такая же проблема, и я исправил ее простым шагом.

Настоящая проблема заключается в автозапуске для установки пути к вашей командной строке. Это связано с вашим реестром. Я просто удалил файл автозапуска в реестре для командного процессора, и он начал работать нормально.

Хоп в этой ссылке

Другие вопросы по тегам