问题描述:
当我们在终端运行 js 文件时,经常遇到 ES6 语法不被支持的问题,导致程序无法正常执行。比如在终端上运行以下 ES6 语法的代码时:
let a = 1;
const b = 2;
console.log(a + b);
会报出以下错误:
/Users/xxx/Desktop/test.js:1
let a = 1;
^^^
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode in index.js:1
解决方案:
- 使用 babel 转译器
ES6 语法是 JavaScript 语言的最新标准,而许多终端程序仍然使用旧版的 JavaScript 引擎运行,会导致无法支持 ES6 语法。此时可以使用 babel 转译器将 ES6 语法转换为 ES5 语法,从而使得终端环境能够正常运行。
安装 babel:
$ npm install -g babel-cli
使用 babel 运行 js 文件:
$ babel-node script.js
其中,script.js
是需要运行的 js 文件名。
示例:
新建一个名为 test.js
的文件,内容如下:
let a = 1;
const b = 2;
console.log(a + b);
在终端运行以下命令:
$ babel-node test.js
若正确配置环境,终端会输出以下结果:
3
- 使用 Node.js 的
--harmony
参数
Node.js 从 v0.11 版本开始就逐步支持 ES6 的特性,而在 v6.0.0 版本后,则默认开启了所有 ES6 特性。要在终端中运行 ES6 语法的 JavaScript 文件,可以使用 Node.js 的 --harmony
参数来开启 ES6 的支持。
示例:
和上一个示例一样,先新建一个名为 test.js
的文件,内容依然如下:
let a = 1;
const b = 2;
console.log(a + b);
在终端运行以下命令:
$ node --harmony test.js
若正确配置环境,终端会输出以下结果:
3
总结:
以上两种方法均可解决终端环境下运行 ES6 语法的 JavaScript 文件,使用 babel 更加灵活,可以根据需要针对不同的开发需求进行配置;而使用 --harmony
参数更加简单,但需要注意当前 Node.js 版本是否支持。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:解决node终端下运行js文件不支持ES6语法 - Python技术站