如何 运行 Node.js 启用 ES6 功能的应用程序?
How to run Node.js app with ES6 features enabled?
我使用 require hook of BabelJS (formerly named 6to5) to run node apps with es6features:
// run.js
require("babel/register");
require("./app.js6");
我调用 node run.js
到 运行 我的 app.js6。我需要安装 BabelJS 并为每个我想使用 es6features 的项目提供 run.js。我更喜欢 nodejs6 app.js6
这样的电话。如何独立实现这个系统(Unix和Windows)?
您可以将带有 --harmony 标志的节点用于 运行 具有 es6 功能的脚本
将 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"
}
}
这样做的一个好处是 运行 您的应用程序的命令保持不变,如果您正在与其他开发人员合作,这会有所帮助。
I would prefer a call like 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);
});
运行 你的 es6 特色脚本 node es6 thefile.js
参考:官方usage doc
从 babel 6 开始,您现在必须安装 babel-register
并使用以下内容
require("babel-register");
确保同时安装 babel es2015 预设。
您需要安装 babel-register
and babel-preset-es2015
preset 用于 babel-register
选项以启用转换 ES6
到 ES5
on-the-fly 转译
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
方法设置它
如何使用 es6 支持配置 node.js 应用程序并在文件更改时重新加载服务器。
I.Configuration 个步骤(从头开始创建项目):
1.Go 在终端到你的项目主目录
npm init
//为项目
创建package.json
2.Install 依赖关系
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 - 也可以是 stage-1 或 2,这取决于我们要使用的 es 的什么特性
3.We 应该在 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.Create 项目根目录下的.babelrc文件(有package.json文件)
{
"presets": ["es2015", "stage-0"]
}
5.Create两个目录:
src - 这是工作目录,其中包含用 es6
编写的文件
dist - 这里的文件将使用 babel
编译为 es5
您的项目根目录应如下所示:
- 项目
- 来源
- index.js //主项目文件
- 距离
- package.json
- .babelrc
7.Add 到 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
//它正在监视+启动节点服务器,在每次文件更改时,它将使用正在监视 dist 目录更改的 nodemon 重新启动节点服务器
9.Final 笔记
- 服务器将运行dist/index.js文件作为主文件
- 文件dist/index.js将从src/index.js编译而来,所以应该有项目的主文件。
- dist 目录应该被 git 添加到忽略(但如果它将是一个节点包,则不会为 npm 忽略它)
10.Run 服务器并开始在 src 目录中创建应用程序。
npm run serve
二.更简单的方法(准备使用样板)
如果对您来说积分太多,那么 github 上提供了完整的 woking 样板 - https://github.com/maciejsikora/node-express-babel-boilerplate。
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
参考这个:
或此样板文件:
npm init es6
它使用 "type": "module"
设置创建一个 package.json
文件。
我使用 require hook of BabelJS (formerly named 6to5) to run node apps with es6features:
// run.js
require("babel/register");
require("./app.js6");
我调用 node run.js
到 运行 我的 app.js6。我需要安装 BabelJS 并为每个我想使用 es6features 的项目提供 run.js。我更喜欢 nodejs6 app.js6
这样的电话。如何独立实现这个系统(Unix和Windows)?
您可以将带有 --harmony 标志的节点用于 运行 具有 es6 功能的脚本
将 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"
}
}
这样做的一个好处是 运行 您的应用程序的命令保持不变,如果您正在与其他开发人员合作,这会有所帮助。
I would prefer a call like
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);
});
运行 你的 es6 特色脚本 node es6 thefile.js
参考:官方usage doc
从 babel 6 开始,您现在必须安装 babel-register
并使用以下内容
require("babel-register");
确保同时安装 babel es2015 预设。
您需要安装 babel-register
and babel-preset-es2015
preset 用于 babel-register
选项以启用转换 ES6
到 ES5
on-the-fly 转译
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
方法设置它
如何使用 es6 支持配置 node.js 应用程序并在文件更改时重新加载服务器。
I.Configuration 个步骤(从头开始创建项目):
1.Go 在终端到你的项目主目录
npm init
//为项目
2.Install 依赖关系
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 - 也可以是 stage-1 或 2,这取决于我们要使用的 es 的什么特性
3.We 应该在 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.Create 项目根目录下的.babelrc文件(有package.json文件)
{
"presets": ["es2015", "stage-0"]
}
5.Create两个目录:
src - 这是工作目录,其中包含用 es6
编写的文件dist - 这里的文件将使用 babel
编译为 es5您的项目根目录应如下所示:
- 项目
- 来源
- index.js //主项目文件
- 距离
- package.json
- .babelrc
- 来源
7.Add 到 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
//它正在监视+启动节点服务器,在每次文件更改时,它将使用正在监视 dist 目录更改的 nodemon 重新启动节点服务器
9.Final 笔记
- 服务器将运行dist/index.js文件作为主文件
- 文件dist/index.js将从src/index.js编译而来,所以应该有项目的主文件。
- dist 目录应该被 git 添加到忽略(但如果它将是一个节点包,则不会为 npm 忽略它)
10.Run 服务器并开始在 src 目录中创建应用程序。
npm run serve
二.更简单的方法(准备使用样板)
如果对您来说积分太多,那么 github 上提供了完整的 woking 样板 - https://github.com/maciejsikora/node-express-babel-boilerplate。
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
参考这个:
或此样板文件:
npm init es6
它使用 "type": "module"
设置创建一个 package.json
文件。