我按照here的说明安装babel-cli
。我在我想要运行它的目录中的package.json中添加了"build": "babel src -d lib"
。但是,在运行时,我收到此错误:
npm run build
> ipfs-readme-standard@1.0.0 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! ipfs-readme-standard@1.0.0 build: `babel src -d lib`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the ipfs-readme-standard@1.0.0 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
我不知所措。不应该生成?我错过了babeljs.io没有额外的一步。
答案 0 :(得分:27)
不应该生成src吗?
这是包含您要编译的脚本的文件夹。如果它不存在,则babel将抛出您发布的错误。
另外,请注意您链接到的页面底部的内容:
Pre-6.x,Babel默认启用了某些转换。但是,Babel 6.x不附带任何启用的转换。您需要明确告诉它要运行什么转换。最简单的方法是使用预设,例如ES2015预设。
这意味着即使你创建一个src
目录并在其中放置一个包含ES6代码的文件,Babel也会愉快地运行,但输出将(几乎)与输入相同。
这是一个如何使用babel-cli启动和运行的快速示例。
创建一个项目,然后安装babel-cli包和ES2015预设:
mkdir babeltest && cd babeltest
touch package.json
npm install babel-cli babel-preset-es2015 --save-dev
接下来修改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"
}
}
请注意,npm脚本中的命令与babel homepage上的命令略有不同,只要我们告诉它使用已安装的预设。
接下来在src目录中创建一个文件:
mkdir src && cd src
touch main.js
在main.js中添加:
[1,2,3].map(x => x * x)
然后通过npm运行babel:
npm run build
检查lib / main.js中的输出
"use strict";
[1, 2, 3].map(function (x) {
return x * x;
});
答案 1 :(得分:1)
如果有人仍在寻找解决方案,请检查.babelrc是否缺失 如果是这样,只需创建一个新的.babelrc文件并将上面的代码段粘贴到其中。
{
"presets": ["es2015", "stage-0"]
}
答案 2 :(得分:0)
如果未安装节点模块,也会出现此错误。如果从Internet下载代码并立即尝试运行代码,则会抛出上述错误,只需运行
npm install
然后
npm run build
//或其他命令应该有效