Unable to run babel via npm script "babel: command not found"
Solution 1
Did you run "npm install" to install the dev packages?
Solution 2
I've come across the same issue lately. Removing the node_modules folder and running npm install
again no longer fixes the issue.
The reason you are getting this error is because babel-cli needs to be installed globally, not as a project dependency.
Run npm install -g babel-cli
to install it globally.
Babel-preset-es2015 can then be installed as a dev dependency for your projects npm install --save-dev babel-preset-es2015
Solution 3
You should never install babel-cli globally - in fact, they specifically have an entire paragraph telling you not to from their official docs.
Edit package.json
>> add a script with the key called, say, build
with the value ./node_modules/.bin/babel <commands>
If you called it build
, just then type npm run build
.
Solution 4
The error occurs because ./node_modules/.bin
is not in $PATH
. ./node_modules/.bin
is where all the executable binaries can be found.
As recommended by the documentation, you can reference the babel
cli inside of node_modules
:
$ ./node_modules/.bin/babel src -d lib
You can modify your npm run build
command to use this:
"scripts": {
"build": "./node_modules/.bin/babel src -d dist"
},
Justin
Updated on July 09, 2022Comments
-
Justin almost 2 years
To get started I ran:
npm install --save-dev babel-cli npm install --save-dev babel-preset-es2015 npm install --save-dev babel-preset-stage-0
Here is my package.json:
{ "scripts": { "build": "babel src -d dist" }, "devDependencies": { "babel-cli": "^6.6.5", "babel-core": "^6.7.2", "babel-preset-es2015": "^6.6.0", "babel-preset-stage-0": "^6.5.0" } }
Here is my .babelrc file:
{ "presets": ["es2015", "stage-0"] }
My file structure is like this:
- Root - src - client - server - test - dist - package.json
I am calling npm run build from the root folder. I am expecting it to compile the source folder into the dist folder. It runs and then I get this error:
> babel src -d dist sh: babel: command not found npm ERR! Darwin 15.2.0 npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "build" npm ERR! node v5.8.0 npm ERR! npm v3.7.3 npm ERR! file sh npm ERR! code ELIFECYCLE npm ERR! errno ENOENT npm ERR! syscall spawn npm ERR! [email protected] build: `babel src -d dist` npm ERR! spawn ENOENT npm ERR! npm ERR! Failed at the [email protected] build script 'babel src -d dist'. npm ERR! Make sure you have the latest version of node.js and npm installed. npm ERR! If you do, this is most likely a problem with the redacted package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! babel src -d dist npm ERR! You can get information on how to open an issue for this project with: npm ERR! npm bugs redacted npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm owner ls redacted npm ERR! There is likely additional logging output above. npm ERR! Please include the following file with any support request: npm ERR! /Users/user/redacted/npm-debug.log
So as you can see, I've installed babel-cli, I've installed the presets, and I think everything is in order according to the babel docs.
Does anyone have ideas about why it wouldn't be working? Could I be missing a babel npm file? Is "babel src -d dist" incorrect?
Thanks for any help you can provide!
I made another folder and followed the same steps, it worked perfectly. For some reason it's not working in this directory.