使用Node.js时使用ES6的babel笔记
在使用Node.js中的ES6时,需要使用Babel作为转译器,以便进行最基本的环境配置。
所需之物
-
- モジュール
babel-cli
date-utils
ファイル
sample_es6.js ※ES6で書かれたjs
.babelrc
简要概括
当我试图在nodejs中使用es6(import/export)并从终端执行 node sample_es6.js时,会出现Uncaught SyntaxError: Unexpected token import的错误,导致无法执行。以下是解决方法的备忘录。
验证
创建一个使用ES6编写的用于验证的js文件。
import 'date-utils';
const now = new Date();
console.log(now.toFormat('YYYY年MM月DD日 HH24時MI分SS秒'));
如果在没有任何准备的情况下使用Node命令执行这个操作
$ node sample_es6.js
...\sample_es6.js:1
(function (exports, require, module, __filename, __dirname) { import 'date-utils';
^^^^^^
SyntaxError: Unexpected token import
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:616:28)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
at startup (bootstrap_node.js:188:16)
at bootstrap_node.js:609:3
就像这样会发生SyntaxError。我们来解决它。
处理方法
要解决这个问题,需要安装一个名为Babel的工具,将ES6转换为ES5,以便Node能够理解。
首先要安装所需的模块。
$ npm install babel-cli
在父级目录中创建.babelrc文件,并在其中写入以下内容。
{
"presets": [
[
"env", {
"targets": {
"node": "current"
}
}
]
]
}
据称,”node”:”current” 可自动判断节点端需要使用的内容?
在执行以下命令之前,需要全局安装babel-cli,然后运行ES6编写的文件。
这样一来就执行了
$ babel-node sample_es6.js
2018年04月06日 00時15分53秒
顺利执行了而没有出现SyntaxError的问题。