对于客户端代码,您做的是正确的事情。 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 模块。看看full list of presets,看看哪个最适合你。
{
"presets": ["es2015"]
}
将build 脚本添加到您的package.json。下面src 是你的输入文件,build 是转换后的输出文件
"scripts": {
"build": "babel src -d build"
}
然后构建它!
$ npm run build
然后运行您的代码。此时,您需要执行 build 目录中的文件
$ npm start
对于 Babel
require("babel/register");
节点所需的所有后续文件,扩展名为 .es6、.es、.jsx 和 .js > 将被 Babel 转化。 polyfill 也是自动需要的。
您将能够将源文件保留在 ES6 中,但仍使用 node server.js 执行它们
根据您的cmets,您似乎遇到了一些麻烦。特别注意上面黄色突出显示的部分。你的第一个文件只能是 ES5,由 node 自己运行。所有后续要求都将被 Babel 转换...
这是典型设置的样子
server.js
// only ES5 is allowed in this file
require("babel/register");
// other babel configuration, if necessary
// load your app
var app = require("./app.js");
app.js
// this file will be loaded through babel
// you can now use ES6 here and in every other include
开火!
$ node server.js