Отсутствует привязка Node Sass для нескольких версий узла

Я использую nvm для переключения между версиями узла.

Мой пакет.json:

"scripts": { "dev": "rm -rf public/assets/*.hot-update.js && NODE_ENV=development webpack --env=dev --progress --profile --colors", "prod": "NODE_ENV=production webpack --env=prod --progress --profile --colors" }, "author": "", "license": "ISC", "devDependencies": { "babel-core": "^6.18.2", "babel-loader": "^6.2.10", "babel-preset-es2015": "^6.18.0", "babel-preset-stage-0": "^6.16.0", "babel-preset-stage-2": "^6.18.0", "compression-webpack-plugin": "^0.3.2", "css-loader": "^0.26.2", "extract-text-webpack-plugin": "^2.0.0", "file-loader": "v0.10.0", "imports-loader": "^0.7.0", "node-sass": "^4.1.1", "postcss-cssnext": "^2.9.0", "sass-loader": "^4.1.1", "script-loader": "^0.7.0", "style-loader": "^0.13.1", "uglifyjs-webpack-plugin": "^0.1.2", "vue": "^2.0.3", "vue-lazyload": "0.7.5", "vue-loader": "^10.2.1", "vue-resource": "^1.2.0", "vue-style-loader": "^1.0.0", "vue-template-compiler": "^2.1.8", "vuex": "^2.0.0", "webpack": "2.2.0", "webpack-manifest-plugin": "^1.1.0", "webpack-md5-hash": "^0.0.5", "webpack-merge": "^2.6.1", "whatwg-fetch": "^2.0.2" }

Когда я использую Node v6.2.0 и запускаю npm run dev, я получаю следующую ошибку:

ERROR in ./~/css-loader?{"minimize":true}!./~/vue-loader/lib/style-rewriter.js?id=data-v-be2abeee!./~/sass-loader!./~/vue-loader/lib/selector.js?type=styles&index=0!./~/@zoomcarindia/web-zap-revenue-calculator/src/components/graph/graph.vue
    Module build failed: Error: Missing binding /Users/nihar/Documents/zoomcar/web/node_modules/node-sass/vendor/darwin-x64-48/binding.node
    Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 6.x

Found bindings for the following environments:
  - OS X 64-bit with Node.js 7.x

и когда я использую Node v7.8.0, я получаю следующую ошибку:

ERROR in ./checklist/~/css-loader?{"minimize":true}!./~/vue-loader/lib/style-rewriter.js?id=data-v-a5234466!./checklist/~/sass-loader!./~/vue-loader/lib/selector.js?type=styles&index=0!./checklist/src/components/Upload.vue
    Module build failed: Error: Missing binding /Users/nihar/Documents/zoomcar/web/checklist/node_modules/node-sass/vendor/darwin-x64-51/binding.node
    Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 7.x

    Found bindings for the following environments:
      - Unknown environment (.DS_Store)
      - OS X 64-bit with Node.js 6.x

Какую бы версию узла я ни использовал, она говорит, что соответствующая привязка отсутствует.

Я пробовал npm rebuild node-sass и rm -rf node_modules несколько раз.

Даже попробовал npm install --save-dev gulp-sass@2, как было предложено здесь.

Первоначально я установил узел, используя brew. Это была версия 6.2.0. Я полностью удалил узел system, как было предложено здесь, а затем установил его с помощью nvm.

Но проблема все еще сохраняется. Пожалуйста, дайте мне знать, что мне здесь не хватает.


person Nihar    schedule 07.04.2017    source источник
comment
Вы пробовали npm rebuild node-sass --force?   -  person robertklep    schedule 07.04.2017
comment
только что попробовал, не получилось.   -  person Nihar    schedule 07.04.2017
comment
Я могу воспроизвести проблему, но это решило ее для меня.   -  person robertklep    schedule 07.04.2017


Ответы (4)


После нескольких часов борьбы с системами сборки я сдался и, как и Мэтт выше, просто взял бинарный файл с https://github.com/sass/node-sass/releases

(ссылка Мэтта не дошла до Node 9)

Я создал каталог, в котором запускаемое веб-приложение (в моем случае Webstorm) сообщило, что ищет отсутствующий двоичный файл, загрузил двоичный файл и в моем случае переименовал darwin-x64-59_binding.node в binding.node и попытался запустить снова — затем работал.

person spodell    schedule 12.01.2018

npm rebuild node-sass работал для VS 2017, но не для VS Code. Мне пришлось запустить npm cache clean, прежде чем он заработал в VS Code. Я не пробовал npm rebuild node-sass --force, потому что я решил это до того, как нашел эту страницу, поэтому я не знаю, будет ли это иметь такой же эффект или нет.

person Cool Blue    schedule 01.06.2017


Ни одно из решений по установке/перестройке не решило проблему для меня (используя gulp).

Вот как я решил это:

1) Загрузите отсутствующий файл привязки из репозитория.

2) Переименуйте файл binding.node.

3) Создать каталог /node-modules/vendor/darwin-x64-51/

4) Добавить binding.node файл в /node-modules/vendor/darwin-x64-51/

person Don P    schedule 14.01.2019