我正在使用nvm在节点版本之间切换。
我的package.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
。
按照建议here进行了npm install --save-dev gulp-sass@2
尝试。
最初我使用brew
安装了节点。那是v6.2.0。我按照建议here完全删除了system
节点,然后使用nvm安装了该节点。
但问题仍然存在。请告诉我这里缺少的东西。
答案 0 :(得分:1)
npm rebuild node-sass
为VS 2017工作但不适用于VS Code。我必须运行npm cache clean
才能在VS Code中运行。我没有尝试npm rebuild node-sass --force
因为我在找到这个页面之前解决了它,所以我不知道这是否会产生相同的效果。
答案 1 :(得分:1)
经过几个小时的战斗构建系统,我放弃了和上面的Matt类似,我只是抓住了https://github.com/sass/node-sass/releases中的二进制文件
(马特的链接没有达到节点9)
我创建了运行webapp(在我的Webstorm中)说它正在寻找丢失的二进制文件的目录,下载了二进制文件,在我的例子中将darwin-x64-59_binding.node重命名为binding.node并尝试再次运行 - - 然后它工作了。
答案 2 :(得分:0)
所以我遇到了类似node-sass的问题,最后从github here抓取了我需要的二进制文件。
对我来说,我需要win32-ia32-48,所以我创建了该文件夹并从上面的链接复制了binding.node文件(重命名后删除了win32-ia32-48前缀)。
答案 3 :(得分:0)
没有一个安装/重建解决方案(使用gulp)为我解决了该问题。
这是我的解决方法:
1)从repository下载丢失的绑定文件。
2)重命名文件binding.node
。
3)创建目录/node-modules/vendor/darwin-x64-51/
4)将binding.node
文件添加到/node-modules/vendor/darwin-x64-51/