Reputation: 3681
When I tried install vue store front in my local but when I tried "yarn install" command I get following error. How can I solve this error? How can I solve this error?
error /var/www/html/vue-storefront/node_modules/node-sass: Command failed.
Exit code: 1
Command: node scripts/build.js
Arguments:
Directory: /var/www/html/vue-storefront/node_modules/node-sass
Output:
Building: /usr/bin/node /var/www/html/vue-storefront/node_modules/node-gyp/bin/node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [
gyp verb cli '/usr/bin/node',
gyp verb cli '/var/www/html/vue-storefront/node_modules/node-gyp/bin/node-gyp.js',
gyp verb cli 'rebuild',
gyp verb cli '--verbose',
gyp verb cli '--libsass_ext=',
gyp verb cli '--libsass_cflags=',
gyp verb cli '--libsass_ldflags=',
gyp verb cli '--libsass_library='
gyp verb cli ]
gyp info using [email protected]
gyp info using [email protected] | linux | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "/usr/bin/python3.6" in the PATH
gyp verb `which` succeeded /usr/bin/python3.6 /usr/bin/python3.6
gyp ERR! configure error
gyp ERR! stack Error: Command failed: /usr/bin/python3.6 -c import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack File "<string>", line 1
gyp ERR! stack import sys; print "%s.%s.%s" % sys.version_info[:3];
gyp ERR! stack ^
gyp ERR! stack SyntaxError: invalid syntax
gyp ERR! stack
gyp ERR! stack at ChildProcess.exithandler (child_process.js:303:12)
gyp ERR! stack at ChildProcess.emit (events.js:321:20)
gyp ERR! stack at maybeClose (internal/child_process.js:1026:16)
gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
gyp ERR! System Linux 4.15.0-88-generic
gyp ERR! command "/usr/bin/node" "/var/www/html/vue-storefront/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /var/www/html/vue-storefront/node_modules/node-sass
gyp ERR! node -v v13.9.0
Upvotes: 314
Views: 426039
Reputation: 1895
For my use-case, node-sass
is version 6.0.0 and node-gyp
was using distutils
which couldn't be found.
My version of Python was 3.12.3 on my new M3 MacBook Pro which was too new.
So I downgraded my Python version.
brew unlink [email protected]
brew install [email protected]
brew link [email protected]
python3 --version
This should now display Python 3.9.x
Then yarn cache clean && yarn install
ran successfully.
Upvotes: 0
Reputation: 4323
.npmrc
file.python = "/usr/bin/python3"
in the .npmrc
yarn install
Thanks @NaceurBouhamed for the comment.
node is the crappiest technology ever for developing :D Starting project is always a nightmare of manually fixing dependencies. – Vasil Valchev
Upvotes: 3
Reputation: 9531
I had the same problem and I solved with the steps:
Rosetta 2
(optional, only necessary if you have the Node installed with Rosetta)node-sass
version in your package.json
and compare with the following table:NodeJS | Supported node-sass version | Node Module |
---|---|---|
Node 20 | 9.0+ | 115 |
Node 19 | 8.0+ | 111 |
Node 18 | 8.0+ | 108 |
Node 17 | 7.0+, <8.0 | 102 |
Node 16 | 6.0+ | 93 |
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+, <6.0 | 64 |
Node 8 | 4.5.3+, <5.0 | 57 |
Node <8 | <5.0 | <57 |
node --version
node-sass
, if your are using NVM, run: nvm use DESIRED_VERSION
node_modules
deleting the folder or type this on terminal: rm -rf node_modules
npm install
Resource:
Upvotes: 405
Reputation: 504
if your project has .nvmrc file, then install/use nodejs listed on that file.
inside my .nvmrc file, it's listed v8, so I'm just installing node v8.
.nvmrc is specifying or locking your application with a specific node.js version.
Upvotes: 0
Reputation: 1118
I was using "node-sass": "^4.13.1"
in my package.json. I updated to "node-sass": "6.0.0"
and it worked. My Node.js version is v16.14.0
.
Upvotes: 2
Reputation: 3311
detect your current npm config python path by run:
$ npm config get python
if it another from your current python path, so change it by run:
$ npm config set python=<YOUR_PYTHON_DIR_PATH>
(for example in my machine it's: C:\python311
)
Upvotes: 1
Reputation: 707
For me this was an easy fix. If you are using nvm, just make sure you have the correct node version installed and in use.
Steps:
node -v
nvm use 14
yarn install
This should work.
Upvotes: 1
Reputation: 582
From personal perspective you had better to use:
yarn add axios
Upvotes: -1
Reputation: 430
As for me, the issue was resolved after upgrading to the latest v7.0.1. Based on this github issue, node-sass team has fixed it in version 7.0 and above.
I'm using node v16.13.2 and on Apple M1 Chip.
Upvotes: 6
Reputation: 1
I had this problem when I was using a newer version of Node (16 via nvm) than my current version of node-sass (4.9) supported. Falling back to Node 10 worked to relieve the issue. Ângelo Polotto's answer has a good compatibility chart to follow.
Upvotes: 0
Reputation: 81
Having same issue here. I did
nvm install 14
because the node-sass
version I have in package.json
is 4.14.1
then this will display - Now using node v14.19.3
(npm v6.14.17
)
after I did
yarn install
and it was a success
Upvotes: 8
Reputation: 492
If it's a Rails project, upgrading webpacker did the job for me.
yarn add @rails/webpacker
Upvotes: 28
Reputation: 69
If you are getting this error while trying to deploy your project on Heroku, these steps worked for me:
On 16 December 2021, Heroku changed the Node version to 16.13.1 (which was previously 12.16.2). Since we have dependencies such as node-sass v4.14.1
which requires Node v14, we need to specify the Node version Heroku should use.
Please make you install them in the order below
$ heroku buildpacks:add heroku/nodejs $ heroku buildpacks:add heroku/ruby
$ heroku buildpacks
- heroku/nodejs
- heroku/ruby
ruby
comes first, you can just remove
it, then add it again as below.$ heroku buildpacks:remove heroku/ruby
Add it again
$ heroku buildpacks:add heroku/ruby
Now you should have the correct ordering.
{ ... "engines": { "node": "14.x" }, ... }
$ yarn install
to update your dependencies based on the new Node version.This happens because your application contains a Yarn lockfile
yarn.lock
which does not match the dependencies inpackage.json
. This can happen if you use npm to install or update a dependency instead of Yarn.
I found this solution in this article and it worked for me, hope I could help someone
Upvotes: 4
Reputation: 1334
my solution use node v10.19.0
https://github.com/nodejs/docker-node/issues/1149#issuecomment-552705885
Had a similar problem with /node_modules/node-sass: Command failed on building my application, which also occurred within the last week without any updates on my end.
Had a look at the node-sass docs and the node version on the server and it was using node v12.13.0 and the version of node-sass was 4.9.x.
in the node-sass release docs it lists that for node v12 you need to have node-sass v4.12 and up.
Updating node-sass version corrected the build for me, hope it helps for you too.
node Release docs: https://github.com/sass/node-sass/releases
Upvotes: 5
Reputation: 9
This happened to me a day after upgrading node. I had to revert to a lower node version. I had upgraded to 16.13.2 from 14.15.4
Upvotes: 0
Reputation: 1971
For macOS users
If you need to use node-gyp
from within npm
(e.g. through npm install
), you will have to install node-gyp (either globally with -g
or to a predictable location) and tell npm
where the new version is.
In my case, turns out my project defaulted to using node-gyp v3.8.0
to building my project's modules.
To remedy that, I ran the following commands:
npm config set node_gyp /usr/local/lib/node_modules/node-gyp
npm install
I hope this is insightful for anyone going through the same.
Upvotes: 2
Reputation: 5961
Got very strange solutions around after reading the heroku logs.
Initially I have added buildpacks into this order: heroku/ruby heroku/nodejs
But after looking into the complete log and error i have change the order: heroku/nodejs heroku/ruby
After that precompile works nicely.
Upvotes: 0
Reputation: 2412
For Vue Storefront 1, you can try using node version 10.16.0 and it will work fine.
Upvotes: 1
Reputation: 112
On top of the suggested resolutions, I've found that sometimes yarn.lock
has a node-gyp
locked version for node-sass
.
When I changed it from 3.8.0 to 8.4.1 everything worked.
Upvotes: 3
Reputation: 11
TBH my problem was that I tried to "npm install angular-cli" instead of "npm install @angular/cli", hope this helps other dummies like me :)
Upvotes: 1
Reputation: 539
Try installing sass instead of node-sass. It worked well for me.
yarn remove node-sass
yarn add sass
Upvotes: 52
Reputation: 154
i have been facing the same problem for a while now on rails app, and was solved by upgrading webpacker:
# check your Gemfile for version restrictions
bundle update webpacker
# overwrite your changes to the default install files and revert any unwanted changes from the install
rails webpacker:install
# yarn 1 instructions
yarn upgrade @rails/webpacker --latest
yarn upgrade webpack-dev-server --latest
see: https://github.com/rails/webpacker#upgrading
props to chase439 : https://github.com/sass/node-sass/issues/2447
Upvotes: 6
Reputation: 1
With gulp I got "Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 12.x
Found bindings for the following environments:
This usually happens because your environment has changed since running npm install
.
Run npm rebuild node-sass
to download the binding for your current environment."
So I ran npm rebuild node-sass
and that worked! Then npm install and everything went ok.
Upvotes: 0
Reputation: 573
Another option is to update your PATH environment variable to point to Python2 instead of Python3 (remove the Python3 directory from PATH)
Upvotes: 2
Reputation: 321
I changed the node version from 16.0 to 14.x in my package.json file and it worked.
Upvotes: 15
Reputation: 29
It's failing because python3 is used here. Create a .npmrc file in the project folder containing python = "/usr/bin/python2.7" and install. According to link, python 3.x.x is not yet supported. – NaceurBouhamed Feb 25 '20 at 12:28
****python = "localpath/python27/python.exe"
RESOLVED
Upvotes: 1
Reputation: 33755
I am running Rails 6
and for some reason it was pulling webpacker 4.3.0
which was pulling node-sass 4.3.0
rather than 6.0.0
which is the latest as of the date of this post.
What worked for me is the following:
node_module
folder, package-lock.json
and yarn.lock
package.json
, I upgraded rails/webpacker: 5.3.0
.yarn install
.yarn add node-sass
That worked like a charm, after trying everything else above.
I believe those were the exact steps, although to be honest I have been trying sooo many things and they didn't work and I finally got it to work so there is a possibility I may have missed a step, but I did my best to re-create it for any future frustrated soul out there.
Upvotes: 90
Reputation: 326
Install node-sass
globally with yarn
Or
Add node-sass
to your project
Upvotes: 5
Reputation: 112
I ran into this issue when containerising a VueJs app. I was using the node:15.12.0-alpine tag as base image before but the issue was fixed once I changed to the full node image (node:15.12.0) that uses debian-stretch.
Upvotes: 1
Reputation: 176
Solutions here don't work for me. Until I delete the node_modules folder and yarn.lock.
rm -rf node_modules
rm yarn.lock
yarn instal
Upvotes: 10