如何运行启用ES6function的Node.js应用程序?

我使用BabelJS (以前称为6to5)的require hook来运行具有es6features的节点应用程序:

// run.js require("babel/register"); require("./app.js6"); 

我调用node run.js来运行我的app.js6 。 我需要安装BabelJS并为每个我想使用es6features的项目提供一个run.js。 我更喜欢像nodejs6 app.js6这样的调用。 我怎样才能独立实现这个系统(Unix和Windows)?

babel-clibabel-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支持所有ES6function),您可以从package.json中删除它:

 { "dependencies": {}, "scripts": { "start": "node app.js" } } 

这样做的一个好处是运行你的应用程序的命令保持不变,这有助于与其他开发人员一起工作。

如何configurationnode.js应用程序与es6支持和服务器重新加载文件更改


I.configuration步骤(从零开始创build项目):

1.进入您的项目主目录

npm init //为项目创buildpackage.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,这取决于我们要使用什么样的function

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.在root项目目录下创build.babelrc文件(里面有package.json文件)

 { "presets": ["es2015", "stage-0"] } 

5.创build两个目录:

src – 这里是在es6中写入文件的工作目录

dist – 这里的文件将使用babel编译成es5

您的项目根目录应如下所示:

  • 项目
    • SRC
      • index.js //主项目文件
    • DIST
    • 的package.json
    • .babelrc

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.可用命令:

npm run watch //开始监视src目录中的更改并编译到dist

npm run build编译文件从src目录到dist

npm run serve //它正在执行watch +启动节点服务器,对每个文件进行更改它将使用正在监视dist目录更改的nodemon重新启动节点服务器

9.最后的笔记

  • 服务器将运行dist / index.js文件作为主文件。
  • 文件dist / index.js将从src / index.js编译,所以应该有项目的主文件。
  • dist目录应该被添加到忽略git(但不要忽略它为npm,如果它将是一个节点包)

10.运行服务器并开始在src目录下创build应用程序。

 npm run serve 

II。 更简单的方法(准备使用样板)

如果你的分数太多,那么你可以在github上find完整的woking样板 – https://github.com/maciejsikora/node-express-babel-boilerplate

您可以使用带有–harmony标志的节点来使用es6function运行脚本

你需要安装babel-registerbabel-preset-es2015预置使用了babel-register选项来启用将ES6转换成ES5的实时转译

  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方法进行设置的时候

我更喜欢像nodejs6 app.js6这样的调用。

您可以尝试使用babel-core API的包装解决scheme:

 // 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运行你的es6特色脚本

参考 :官方使用文件

从babel 6开始,您现在必须安装babel-register并使用以下内容

 require("babel-register"); 

一定要安装babel es2015预设。