对于客户端代码,您正在做正确的事情。babelify
并将其运送给客户。
对于服务器端代码,我只会使用babel-cli进行常规构建
据http://babeljs.io/docs/setup/#babel_register,babel-register
是不能用于生产环境-钩推荐用于简单的情况下的需要。
通天塔 6+
从 Babel 6 开始,默认情况下不包含任何转换。所以让我们从安装babel-cli
和开始babel-preset-es2015
。
$ npm install --save-dev babel-cli babel-preset-es2015
向您的.babelrc
文件添加转换——这是我们在上面下载的 perst module。查看完整的预设列表,看看哪些(哪些)最适合您。
{
"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");
node 需要的所有后续文件扩展名为.es6、.es、.jsx和.js都将被 Babel 转换。该填充工具也需要自动。
您将能够将源文件保存在 ES6 中,但仍然使用 node server.js
根据您的评论,您似乎遇到了一些麻烦。请特别注意上面黄色突出显示的部分。您的第一个文件只能是 ES5,它由节点本身运行。所有后续的需求都会被 Babel 转化...
这是典型设置的样子
服务器.js
// only ES5 is allowed in this file
require("babel/register");
// other babel configuration, if necessary
// load your app
var app = require("./app.js");
应用程序.js
// this file will be loaded through babel
// you can now use ES6 here and in every other include
燃烧起来;动起来!
$ node server.js