14

I followed the directions here to install babel-cli. I added "build": "babel src -d lib" to my package.json in the directory I want to run it in. However, on running, I get this error:

🐕  npm run build

> [email protected] build /Users/richard/src/ipfs-readme-standard
> babel src -d lib

src doesn't exist

npm ERR! Darwin 14.5.0
npm ERR! argv "/Users/richard/.nvm/versions/node/v5.0.0/bin/node" "/Users/richard/.nvm/versions/node/v5.0.0/bin/npm" "run" "build"
npm ERR! node v5.0.0
npm ERR! npm  v3.5.2
npm ERR! code ELIFECYCLE
npm ERR! [email protected] build: `babel src -d lib`
npm ERR! Exit status 2
npm ERR! 
npm ERR! Failed at the [email protected] build script 'babel src -d lib'.
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 ipfs-readme-standard package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     babel src -d lib
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs ipfs-readme-standard
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls ipfs-readme-standard
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/richard/src/ipfs-readme-standard/npm-debug.log

I'm at a loss. Shouldn't src be generated? There's no extra step on babeljs.io that I am missing.

3 Answers 3

29

Shouldn't src be generated?

This is the folder that contains the script that you want to be transpiled. If it doesn't exist then babel will throw the error you posted.

Also, take note of what it says at the bottom of page you linked to:

Pre-6.x, Babel enabled certain transformations by default. However, Babel 6.x does not ship with any transformations enabled. You need to explicitly tell it what transformations to run. The simplest way to do this is by using a preset, such as the ES2015 Preset.

This means that even if you create a src directory and place a file containing ES6 code in it, Babel will happily run, but the output will be (almost) identical to the input.


This is a quick example of how to get up and running with the babel-cli.

Create a project, then install the babel-cli package and ES2015 preset:

mkdir babeltest && cd babeltest
touch package.json
npm install babel-cli babel-preset-es2015 --save-dev

Next edit package.json:

{
  "name": "my-project",
  "version": "1.0.0",
  "scripts": {
    "build": "babel src -d lib"
  },
  "scripts": {
    "build": "babel --presets es2015 src -d lib"
  },
  "devDependencies": {
    "babel-cli": "^6.0.0"
  }
}

Notice that the command in the npm scripts is slightly different to that on the babel homepage, in so far as we're telling it to use the installed presets.

Next make a file in the src directory:

mkdir src && cd src
touch main.js

In main.js add:

[1,2,3].map(x => x * x)

Then run babel via npm:

npm run build

And inspect the output in lib/main.js

"use strict";

[1, 2, 3].map(function (x) {
  return x * x;
});
2

You also get this error when your node modules are not installed, If you download the code from the internet and immediately try running the code, it throws the above error, just run

npm install

and then

npm run build // or other commands should work

2

In case someone is still looking for solution, check if .babelrc is missing If so simply create a new .babelrc file and paste the above snippet in it.

{
  "presets": ["es2015", "stage-0"]
}

Not the answer you're looking for? Browse other questions tagged or ask your own question.