当使用文件的绝对path时,babel-node失败
import { Observable, } from 'rx'; import { readFile, } from 'fs'; let readFile_ readFile_ = Observable.fromNodeCallback(readFile) readFile_(__dirname + '/my-app.js', 'utf-8') .subscribe( (text) => console.log(text), (err) => console.error(err) )
当我运行这个ecma6作为babel-node /home/sk/ws/rxjs-workshop-nov-2015/clcn-app/my-app.js
,它失败,错误,
/usr/local/lib/node_modules/babel-cli/node_modules/babel-core/lib/transformation/file/options/option-manager.js:329 throw new Error("Couldn't find preset " + JSON.stringify(val)); ^ Error: Couldn't find preset "es2015"
但是当我cd
到文件的父文件夹,并运行babel-node my-app.js
,它的工作原理。
为什么babel-node有这个限制?
你使用的是哪个版本的Babel?
它看起来像你使用最新的版本6.0.0
与主要的API更改 。 原因是巴别不仅仅是一个ES2015的译员,而是一个平台。
无论如何,你现在需要特定的预设。 babel-preset-es2015
是使其工作的插件。
CLI用法
babel-node --debug --presets es2015 -- script.js --debug
任务亚军
npm install --save-dev babel-preset-es2015
该插件并将其添加到您的.babelrc
文件中:
{ "presets": ["es2015"] }
可用的预设列表: https : //babeljs.io/docs/plugins/#presets
我认为问题是你没有安装全局预置的es2016 。
babel-node
首先在当前目录的node_modules
中查找它,如果没有,则search父目录等,查看全局的node_modules
作为最后的手段。
- 如何使用babel与npm包将被反应使用
- vue.js与vue-multilanguage我的webpack编译没有被翻译正确
- debuggingNodeJS + ES6应用程序(Webstorm)
- 如何在Babel 6中使用babel-runtime?
- 为什么在ES6模块中导出的对象有未定义的方法?
- webpack与node-postgres导入错误('pg'.Client)
- Mongooseasynchronous/等待与Koa卡住await Model.findOne()。exec()
- relay-starter-kit在Windows上失败
- _iteratorError undefined不是一个函数