对于客户端代码,您正在做正确的事情。babelify
并将其运送给客户。
对于服务器端代码,我将使用babel-cli进行常规构建
根据http://babeljs.io/docs/setup/#babel_register的说明,babel-register
它并不用于生产用途-在简单情况下,主要建议使用require钩子。
适用于Babel 6+
从Babel 6开始,默认情况下不包含任何转换。因此,让我们从安装babel-cli
和开始babel-preset-es2015
。
$ npm install --save-dev babel-cli babel-preset-es2015
向您的.babelrc
文件添加转换-这是我们上面下载的perst模块。查看预设的完整列表,以查看最适合您的预设。
{
"presets": ["es2015"]
}
将build
脚本添加到中package.json
。以下src
是您的输入文件,build
是转换后的输出文件
"scripts": {
"build": "babel src -d build"
}
然后建立它!
$ npm run build
然后运行您的代码。此时,您将要执行目录中的build
文件
$ npm start
对于Babel <= 5,只需使用require钩子即可。
require("babel/register");
扩展名.es6,.es,.jsx和.js的节点所需的所有后续文件都将由Babel转换。该填充工具也需要自动。
您将能够将源文件保留在ES6中,但仍然可以使用 node server.js
根据您的评论,您似乎遇到了一些麻烦。请特别注意上面黄色突出显示的部分。您的第一个文件只能是ES5,它由节点本身运行。随后的所有需求将由Babel改变...
这是典型设置的样子
server.js
require("babel/register");
var app = require("./app.js");
app.js
燃烧起来;动起来!
$ node server.js
require("babel/register");
server.js,然后在运行时node server.js
收到错误消息:Unexpected reserved word: import ...
似乎没有起作用