Node-sass is not recognized by command line

Sam Woolerton picture Sam Woolerton · Feb 28, 2017 · Viewed 37.4k times · Source

I'm trying to set up node-sass, following the instructions on CSS-Tricks. Node and npm are installed correctly, and the node-sass installation worked too. When I go to run node-sass --output-style compressed -o dist/css src/scss, though, I get an error message stating

'node-sass' is not recognized as an internal or external command, operable program or batch file.

I've done a fair bit of Googling and searched Stack Overflow directly. My question isn't about "node" not being recognised as a command. I know node is working as I can run node -v and npm -v, and node-sass was successfully installed after running npm install --save-dev node-sass (there's a folder in node_modules) and no errors appeared in the command line.

Other information: I am running Windows 10 and just did a clean install of node and npm before trying to use node-sass.

EDIT: I uninstalled and reinstalled with -g thanks to @Bhavik's suggestion, and it's now working

Answer

Bhavik picture Bhavik · Feb 28, 2017

You need to install it globally

npm install -g node-sass

Or add it in package.json

"devDependencies": {
    "node-sass": "4.5.0"
},
"scripts" : {
    "node-sass": "node-sass --output-style compressed -o dist/css src/scss"
}

And then do
1. npm i, which in this case would be similar to npm install --save-dev node-sass
2. npm run node-sass

Reference: npm scripts, npm-run-scripts