When I try to install node-sass using npm, I get the following error message:
Cannot download "https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-57_binding.node":"
The command I use is:
npm install node-sass --save-dev-
You can see more details in the screenshot below:
After struggling , finally found exact solution.
In node js software folder, node-sass\4.5.0 folder is still created in npm-cache folder. So I download win32-x64-48_binding.node manually, put it in C:\Users\Administrator\AppData\Roaming\npm-cache\node-sass\4.5.0 folder.
And run npm install command, issue resolved.
I see you are running node version 8.1.4. You can also check it using node --version in the command prompt.
You'll have to use a version >= v4.5.3 instead because lower versions of node-sass are incompatible with node8. This issue has been reported on their GitHub issue page.
You either have to define using v4.5.3 instead or pass the the -g parameter while installing it, which seems to fetch the latest version automagically.
when i used -g it worked properly and got the latest version
Also, as #javiergarval has pointed out, you have a typo. It should have been --save-dev instead of --save-dev-.
My problem is, that I need an older node-sass Binary, which is not available for the new node version I have. But the solution is, at least on Windows, pretty simple. Just install the windows build tools. With that, npm is able to build the binaries out of the source.
Long story short, this solved the problem for me:
npm install --global --production windows-build-tools
Thanks to the answer on this question:
node-sass installation issue on windows 10
Depends on which node version you are using. Node-Sass currently supports only these versions:
Supported Node.js versions 0.10, 0.12, 1, 2, 3, 4, 5, 6 and 7.
If you happen to work on one of those versions, try to specify which version of node-sass you want:
$ npm install --save-dev node-sass#4.5.3
your npm is trying to download node-sass version 3.31.1 which is does not exist on the releases page of https://github.com/sass/node-sass/releases
You have an error on your command:
$ npm install node-sass --save-dev-
^^^
Should be
$ npm install node-sass --save-dev
(without the last - on dev)
Also, it is giving you a WARNING because it wants to be installed globally.
See the official node-sass documentation.
And also, could be interesting for you to know the differences between --save and --save-dev.
version mismatch with node could be the issue. To install the working node-sass version, you can use
npm uninstall node-sass
npm install node-sass#4.14.0
remember to choose your version number based on the following table, and the node version you have, which you can check by the command node --version
You can find full info here
While searching for the solution, have checked the release versions of node-sass and found that "https://github.com/sass/node-sass/releases" the node file it was looking is committed in the latest release and not in the older version. After downloading the required file "win32-x64-64_binding.node" manually from the released version and placing it under C:\Users\Administrator\AppData\Roaming\npm-cache\node-sass\4.7.2 or simply by using npm install node-sass#latest works for me.
None of the above solutions worked for me, this is what I did:
Installed C++ build tools for Visual Studio
Then:
npm uninstall --save-dev gulp-sass
Under the same circumstances I tried to install the node-sass package. I got the error that it required different version. The culprit turned out to be the fact that I was installing not under client folder but in the main one.
After that I installed the appropriate version for Node (for example 12 -> 4.12) based on the answer from Error: Node Sass version 5.0.0 is incompatible with ^4.0.0
Related
Does npm install <package_name> install the latest version of a package or the latest compatible with the version of node installed?
What will happen in these 2 cases?
Case 1:
Node version in the directory is 10.16.0.
Will 'npm install xyz' install the latest xyz or the latest compatible version with 10.16.0?
Case 2:
Node version in the directory is 10.16.0
Will 'npm install -g xyz' install the latest xyz or the latest compatible with the version of node installed globally OR will it consider 10.16.0?
Answer
Latest Version
HOWEVER
If the package is already installed in a project or contained within the package.json file, then the version string Is what NPM will try and use, Which may contain a Caret(^) which tells npm Not to update the Major Version.
For more info read below
Npm install will always install the latest Full Release build of the package (Skips -tag.x versions) unless manually specified, which can potentially be incompatible with some versions of node. Not all packages specify the engine it is compatible with so sometimes you have to do some digging or trial and error.
You can Manually select a version by adding # to the package.
For instance, npm install xyz#10.16.0 will install that specific package version. You can also prefix a version number with a caret (^) to install the latest Minor build, or a tilde (~) to specify the latest patch version.
For example
xyz#^1.2.0 could install say 1.8.0, and xyz#~1.2.0 could install 1.2.9, but Never 1.3.0
For more info on versioning strings read up on Semantic Versioning aka SemVer
https://github.com/npm/node-semver#versions
I am using node version of v16.2.0 and react version of v17.0.2 , I can't able to install the node-sass to run the sass file. I tried to install the latest, but I can't. So please share your about that, it will be helpful for me.
At work we had problem that wasn't displaying icon (from rc-menu lib) for menu block
Each time when we are running
mvn install
we are also running
npm install
inside package json we had this library
"rc-menu":"^5.10.0"
The way to fix it was to run
npm install rc-menu (Inside package.json directory)
My question why this solution works?
For me it is impossible but maybe I'm missing something?
Your version must be a missmatch.
With npm install {package_name} you are installing the latest version. And with npm install you are installing version that satisfies rules of your package.json.
As far as I can see that module doesn't have 5.10.0 version at all...
5.0.14 is the latest of 105 releases
You can try to see the version of that module if you install it with npm install by typing npm list afterwards.
I have a workspace on c9.io, and I am using node.js. I am trying to update socket.io from 0.9.17 to the latest version. However, whenever I run the command npm update socket.io it installs the same version. How can I fix this?
To install the latest available package:
npm install <package>
To install a version directly (no need to uninstall first):
npm install <package>#<version>
If you're not sure what versions of a package are available, you can use:
npm view <package> versions
Don't forget the --save flag to add dependencies to your package.json file.
Source: How do I install a previous version of an npm package?
About npm update
However, if app's package.json contains:
"dependencies": {
"dep1": "~1.1.1"
}
In this case, running npm update will install dep1#1.1.2. Even though the latest tag points to 1.2.2, this version does not satisfy ~1.1.1, which is equivalent to >=1.1.1 <1.2.0. So the highest-sorting version that satisfies ~1.1.1 is used, which is 1.1.2.
Source: npm update - Tilde Dependencies
Recently working with NodeJS ect. I installed quite different packages, for different tutorials + projects.
I finally ended up with this kind of configuration:
louis#louis:~$ node -v
v5.10.0
louis#louis:~$ nodejs -v
v6.2.1
louis#louis:~$ npm -v
3.8.3
Can you explain the difference between these?
Your situation
Seems you have two different versions of nodejs installed, possibly one was installed from sources and one from package manager like apt.
louis#louis:~$ node -v
v5.10.0
This returns older version of nodejs that you installed, I recommend you to remove it.
louis#louis:~$ nodejs -v
v6.2.1
This returns the current version of nodejs installed, possibly you installed it using package manager, I remember in Ubuntu it comes by nodejs executable name.
I suggest you to create link like this
sudo ln -s `which nodejs` /usr/bin/node
so it will be available using node command also.
nodejs vs node on ubuntu 12.04
louis#louis:~$ npm -v
3.8.3
This is just version of your npm program and has nothing to do with nodejs version.
Better solution
Uninstall all versions that you have and install node using nvm to switch between old/new versions easily
To install or update nvm, you can use the install script using cURL:
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
or Wget:
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
Usage
To download, compile, and install the latest v5.0.x release of node,
do this:
nvm install 5.0
And then in any new shell just use the installed version:
nvm use 5.0
https://github.com/creationix/nvm#install-script
I assume you are using ubuntu. node and nodejs are the same tool, but node is the legacy version and nodejs the current development branch.
npm however is the package manager for node(js).
Here's a bit of helpful information to add to the discussion and which will hopefully help you out regarding node version clashes.
Adding the NodeJs version to your $PATH in your .bash_profile (or it may be called .bashrc or .bashconfig) file will ensure your node calls from the terminal will use the latest and not the legacy version.
Using NVM (Node Version Manager) will allow you to install and change node versions on the fly with 'nvm use 6.0.0' and is highly recommended as some NPM packages will break if using a node and npm version that isn't correct for certain npm packages in your node_modules dir.
You will also have to add NVM to your $PATH in this case, but it's easy enough to do with:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
More details can be found in the link provided.
The OP's question was answered, I know, but I think pointing the OP to a better solution is also a good idea.