第一种方法:
- 使用nodejs自带的功能支持es6语法,但是有个问题:文件的后缀名要写成mjs,在各类编辑器中无法获得语法提示,这是个硬伤。
创建文件es6.mjs
import fs from "fs"
let content = fs.readFileSync("es6.mjs")
console.info(content.toString())
执行命令
node --experimental-modules es6.mjs
第二种方法: 使用babel插件支持
- 安装
npm install --global babel-cli
npm install --global babel-preset-env
npm install --save-dev babel-plugin-transform-runtime
创建配置文件.babelrc
- List item
{
"presets": [
"env"
],
"plugins": [
"transform-runtime"
]
}
- 配置package.json
"scripts": {
"build": "babel src -d dist",
"start": "npm run build && node dist/es6.js",
"serve": "node dist/es6.js"
}
build命令:把src文件夹下的js文件,编译到dist文件夹下
start命令:直接运行dist目录下的文件
serve:只运行文件而不重新编译文件
- 创建文件夹src和es6.js
const arr = [1, 2, 3,4,5];
arr.map(item => console.info(item));
Promise.resolve("hello").then(()=>console.info("ok"))
- 创建文件夹dist
- 运行命令npm start
- 自支生成dist目录下的文件es6.js
"use strict";
var _promise = require("babel-runtime/core-js/promise");
var _promise2 = _interopRequireDefault(_promise);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var arr = [1, 2, 3, 4, 5];
arr.map(function (item) {
return console.info(item);
});
_promise2.default.resolve("hello").then(function () {
return console.info("ok");
});
总结:第二种方法是比较靠谱的。