我使用require hook BabelJS(以前命名为6to5)来运行es6features节点应用:
// run.js
require("babel/register");
require("./app.js6");
我致电node run.js
来运行我的 app.js6 。我需要安装BabelJS并为我希望使用es6features的每个项目提供 run.js 。我更喜欢像nodejs6 app.js6
这样的电话。如何独立实现该系统(Unix和Windows)?
答案 0 :(得分:124)
将babel-cli
和babel-preset-es2015
(又称ES6)依赖项添加到应用的package.json文件中并定义start
脚本:
{
"dependencies": {
"babel-cli": "^6.0.0",
"babel-preset-es2015": "^6.0.0"
},
"scripts": {
"start": "babel-node --presets es2015 app.js"
}
}
然后您只需执行以下命令即可运行您的应用程序:
npm start
如果您决定停止使用Babel(例如,一旦Node.js支持所有ES6功能),您只需将其从package.json中删除:
{
"dependencies": {},
"scripts": {
"start": "node app.js"
}
}
这样做的一个好处是运行您的应用程序的命令保持不变,这有助于您与其他开发人员合作。
答案 1 :(得分:35)
如何配置带有es6支持的 node.js应用程序和文件更改时的服务器重新加载。
1.进入您的项目主目录的终端
npm init
//为项目创建package.json
2.安装依赖项
npm install --save-dev babel
npm install --save-dev babel-cli
npm install --save-dev babel-preset-es2015
npm install --save-dev babel-preset-stage-0 //*1
npm install --save-dev nodemon
1 - 它也可以是第1阶段或第2阶段,它取决于我们想要使用的es的哪些功能
3.我们应该在package.json文件中有这样的东西(确定包版本会有所不同,但没关系):
"devDependencies": {
"babel": "^6.5.2",
"babel-cli": "^6.16.0",
"babel-preset-es2015": "^6.16.0",
"babel-preset-stage-0": "^6.16.0",
"nodemon": "^1.11.0"
}
4.在根项目目录中创建.babelrc文件(有package.json文件)
{
"presets": ["es2015", "stage-0"]
}
5.创建两个目录:
src - 这是工作目录,其中包含在es6中编写的文件
dist - 此处文件将使用babel编译为es5
您的项目根目录应如下所示:
7.添加到 package.json 所需的命令:
"scripts": {
"watch": "babel -w src/ -d dist/",
"build": "babel src/ -d dist/",
"serve": "babel -w src/ -d dist/ | nodemon --watch dist",
"test": "echo \"Error: no test specified\" && exit 1"
}
8.Available命令:
npm run watch
//开始观察src目录中的监视更改并编译成dist
npm run build
//将文件从src目录编译为dist
npm run serve
//它正在做watch + start节点服务器,在每个文件更改它将使用nodemon重新启动节点服务器,这正在监视dist目录的更改
9.Final notes
10.运行服务器并开始在 src 目录中创建应用程序。
npm run serve
如果你的点太多,那么github上就可以使用完整的woking样板 - https://github.com/maciejsikora/node-express-babel-boilerplate。
答案 2 :(得分:16)
您可以使用带有--harmony标志的节点来运行带有es6功能的脚本
答案 3 :(得分:6)
您需要安装babel-register
和babel-preset-es2015
预设哪些用于babel-register
选项以启用将ES6
转换为ES5
即时转录{ p>
npm install babel-register
npm install babel-preset-es2015
您的 run.js 文件:
// require babel-register and set Babel presets options to es2015
require('babel-register')({
presets: [ 'es2015' ]
});
require("./app.js6");
注意:现在您不需要.babelrc
个文件来设置Babel presets
选项我们使用require
方法设置
答案 4 :(得分:6)
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
答案 5 :(得分:3)
我更喜欢像
nodejs6 app.js6
这样的电话。
您可以尝试使用babel-core api的包装器解决方案:
// Save as es6.js
var babel = require("babel-core");
var argc = process.argv.length;
babel.transformFile(process.argv[argc - 1], function (err, result) {
eval(result.code);
});
使用node es6 thefile.js
参考:官方usage doc
答案 6 :(得分:1)
从babel 6开始,您现在必须安装babel-register
并使用以下
require("babel-register");
请务必同时安装babel es2015预设。
答案 7 :(得分:1)