我使用BabelJS的require hook(以前名为6to5)来运行具有es6特性的节点应用程序:
// run.js
require("babel/register");
require("./app.js6");
我调用node run.js
来运行我的app.js6。我需要安装BabelJS并为每个我想使用es6功能的项目提供一个run.js。我更喜欢像nodejs6 app.js6
这样的调用。我如何独立实现这个系统(Unix和Windows)?
我使用BabelJS的require hook(以前名为6to5)来运行具有es6特性的节点应用程序:
// run.js
require("babel/register");
require("./app.js6");
我调用node run.js
来运行我的app.js6。我需要安装BabelJS并为每个我想使用es6功能的项目提供一个run.js。我更喜欢像nodejs6 app.js6
这样的调用。我如何独立实现这个系统(Unix和Windows)?
9条答案
按热度按时间2exbekwf1#
将
babel-cli
和babel-preset-es2015
(aka ES6)依赖项添加到应用的package.json文件中,并定义一个start
脚本:然后,您只需执行以下命令即可运行应用:
如果你决定停止使用Babel(例如,一旦Node.js支持所有ES6特性),你可以从package.json中删除它:
这样做的一个好处是,运行应用的命令保持不变,这在您与其他开发人员合作时很有帮助。
pb3s4cty2#
如何配置node.js应用程序,使其支持es6并在文件更改时重新加载服务器。
I.配置步骤(从头开始创建项目):
1.在终端中转到您的项目主目录
npm init
//为项目创建package.json2.安装依赖项
3.我们应该在package.json文件中有类似的内容(当然包版本会有所不同,但这是可以的):
4.在项目根目录下创建.babelrc文件(有package.json文件)
5.创建两个目录:
src-这是在es6中写入文件的工作目录
dist-此处文件将使用babel编译为es 5
您的项目根目录应如下所示:
7.添加到package.json所需命令:
8.可用命令:
npm run watch
//开始监视src目录中的监视更改并编译到dist中npm run build
//将文件从src目录编译到distnpm run serve
//它正在执行watch + start节点服务器,每次文件更改时,它都将使用nodemon重新启动节点服务器,nodemon正在监视dist目录更改9.最后说明
10.运行服务器并开始在src目录中创建应用程序。
II.更简单的方法(现成的样板文件)
如果你觉得太多的话,可以在github -https://github.com/maciejsikora/node-express-babel-boilerplate上找到完整的工作模板。
uhry853o3#
您可以使用带有--harmony标志的节点来运行带有es6功能的脚本
r55awzrz4#
node -r babel-register scripts.js
这是最好的解决办法
npx babel-node scripts.js
!Babel节点在退出进程的情况下不能很好地工作,
kexec
包在这种情况下也没有帮助(正如我所尝试的)在这两种情况下,你都需要使用
.babelrc
,它应该描述你的应用程序的预置和插件。npx
仅用于执行未与npm
或yarn
一起安装的库。否则,您需要先执行npm i -g babel-cli
,然后再执行babel-node script.js
q3aa05255#
您需要安装
babel-register
和babel-preset-es2015
预设将用于babel-register
的选项设置为“已启用”将ES6
转换为ES5
即时传输您run.js文件:
注意:现在您不需要
.babelrc
文件来设置Babel presets
选项,因为我们使用require
方法设置它wpcxdonn6#
我更喜欢像
nodejs6 app.js6
这样的电话。您可以尝试使用babel-core api的 Package 器解决方案:
使用
node es6 thefile.js
运行es6特色脚本参考:正式usage doc
n53p2ov07#
npm init es6
它使用
"type": "module"
设置创建package.json
文件。rekjcdws8#
从Babel 6开始,您现在必须安装
babel-register
并使用确保也安装了Babeles2015预设。
cxfofazt9#
请参阅:
https://stackoverflow.com/a/51485027/1549191
或以下样板文件:
Boilerplate: node-es6