可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I have installed the babel-cli tool as explained by the Babel 'getting started' page.
From a terminal inside my project folder:
npm install --save-dev babel-cli
After this, there is a node_modules directory with a babel-cli folder, but there is no package.json created. npm also shows the following error:
npm WARN enoent ENOENT: no such file or directory, open '/Users/MyName/Sites/Tutorials/Babel2/package.json
When trying to run babel, I get this:
babel src -d lib
-bash: babel: command not found
I have the latest version of nodejs/npm installed. I have run npm update -g, and I have edited my .bash_profile file to include:
export PATH=$PATH:/Users/MyName/npm/bin
export PATH=/usr/local/share/npm/bin:$PATH
I have not experienced this with other npm tools such as browserify. Why is babel not recognized?
回答1:
There are two problems here. First, you need a package.json
file. Telling npm to install without one will throw the npm WARN enoent ENOENT: no such file or directory
error. In your project directory, run npm init
to generate a package.json
file for the project.
Second, local binaries probably aren't found because the local ./node_modules/.bin
is not in $PATH
. There are some solutions in How to use package installed locally in node_modules?, but it might be easier to just wrap your babel-cli commands in npm scripts. This works because npm run
adds the output of npm bin
(node_modules/.bin
) to the PATH
provided to scripts.
Here's a stripped-down example package.json
which returns the locally installed babel-cli version:
{
"scripts": {
"babel-version": "babel --version"
},
"devDependencies": {
"babel-cli": "^6.6.5"
}
}
Call the script with this command: npm run babel-version
.
Putting scripts in package.json is quite useful but often overlooked. Much more in the docs: How npm handles the "scripts" field
回答2:
When I found this question, I was looking for
$ npm install -g babel-cli
回答3:
This is common issue and its looking for .cmd
file from your root directory where you installed babel-cli
. Try the below command.
./node_modules/.bin/babel.cmd
Once you are able to see your source code in the command prompt. Your next step is to install one more npm module babel-preset-es2015
.
Follow the below answer to install babel-preset-es2015
and see why babel need this.
babel-file-is-copied-without-being-transformed
回答4:
This is what I've done to automatically add my local project node_modules/.bin
path to PATH
. In ~/.profile
I added:
if [ -d "$PWD/node_modules/.bin" ]; then
PATH="$PWD/node_modules/.bin"
fi
Then reload your bash profile: source ~/.profile
回答5:
To install version 7+ of Babel run:
npm install -g @babel/cli
npm install -g @babel/core
回答6:
I had the same issue. Deleted the nodemodules
folder and opened command prompt as administrator and then ran npm install
.
All packages installed fine.
回答7:
Installing babel
globally solves this issue:
npm install -g @babel/core @babel/cli
However, it is not encourage to install dependencies globally because they won't have their versions managed on a per-project basis.
You should install your dependencies locally, as suggested on babel
's documentation:
npm install --save-dev @babel/core @babel/cli
The downside is that this gives you no fast/convenient way to invoke local binaries interactively (in this case babel
). npx
gives you a great solution:
npx babel --version
This will run your local installation of babel
. Additionally, if you want to avoid typing npx
, you can configure the shell auto fallback, and then just run:
babel --version
Note: it is important to create a file .babelrc
, at your project's root, in which you specify your babel configuration. As a starting point you can use env-preset
to transpile to ES2015+:
npm install @babel/preset-env --save-dev
In order to enable the preset you have to define it in your .babelrc file, like this:
{
"presets": ["@babel/preset-env"]
}
回答8:
You will need to add quotes around the path to your babel file as below
"./node_modules/.bin/babel" --help
回答9:
Actually, if you want to use cmd commands,you have two ways.
First, install it at gloabl environment.
The other way is npm link
.
so, try the first way: npm install -g babel-cli
.
回答10:
I ran into the very same problem, tried out really everything that I could think of. Not being a fan of installing anything globally, but eventually had to run
npm install -g babel-cli
,
which solved my problem.
Maybe not the answer, but definitely a possible solution...
回答11:
Worked for me e.g.
./node_modules/.bin/babel --version
./node_modules/.bin/babel src/main.js
回答12:
For those using Yarn as their package manager instead of npm:
yarn global add babel-cli
回答13:
One option is to install the cli globally.
Since Babel 7 was released the namespace has changed from babel-cli
to @babel/cli
, hence:
npm install --global @babel/cli
You'll likely still encounter errors for @babel/core
so:
npm install --global @babel/core
回答14:
This worked for me inside package.json as an npm script but it does seem to take to long grabbing the packages even though I have them as dev dependancies. It also seems too long.
"babel": "npx -p @babel/cli -p @babel/core babel --version"
What end up solving it was much simpler but funny too
npm install
I thought I ran that already but I guess somethings needed to be rebuilt. Then just:
"babel": "babel --version"