亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決node終端下運(yùn)行js文件不支持ES6語(yǔ)法

 更新時(shí)間:2020年04月04日 12:27:15   作者:張磊  
這篇文章主要介紹了解決node終端下運(yùn)行js文件不支持ES6語(yǔ)法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

最近寫(xiě)一些簡(jiǎn)單的測(cè)試代碼時(shí),為了方便直接在node終端執(zhí)行發(fā)現(xiàn)有些ES6語(yǔ)法不支持,記錄一下解決方式

現(xiàn)象

新建class.js文件后添加如下代碼

// constructer
class Person {
 constructor(name,age,sex) {
  this.name = name;
  this.age = age;
  this.sex = sex;
 }
 getInfo() {
  return `name:${this.name},age:${this.age},sex:${this.sex}`;
 }

}
var jone = new Person('jone', 18, 'man');
console.log(jone.name);
export default Person;

在終端中運(yùn)行代碼會(huì)提示如下錯(cuò)誤

不識(shí)別export關(guān)鍵字,因?yàn)閚ode環(huán)境中的模塊導(dǎo)入導(dǎo)出是CommonJS規(guī)范實(shí)現(xiàn)的,使用的關(guān)鍵字分別是 require和exports。 ( 其他比較流行的還有AMD方式的requirejs以及CMD方式的seajs )

查看ES6支持的語(yǔ)法

我們可以查看一下node環(huán)境下支持的ES6語(yǔ)法
可以先通過(guò)node -v 命令查看一下版本,可以看到我本地的版本是10.16.2

接著全局安裝一下npm包

npm install -g es-checker

安裝完成后就可以通過(guò)執(zhí)行es-checker命令查看node的支持率及詳情

可以看到如下輸出,

最末尾顯示的是


表示不支持模塊方法

babel

怎么解決呢,可以通過(guò)添加babel命令,將代碼轉(zhuǎn)換為被支持的寫(xiě)法

在項(xiàng)目的工程目錄下,也就是package.json同級(jí)目錄下執(zhí)行

npm install --save-dev babel-cli babel-preset-es2015 babel-preset-es2017

其中babel-cli使我們可以在終端中使用babel命令,如同webpack對(duì)應(yīng)的webpack-cli包,而babel-preset-* 是babel轉(zhuǎn)換代碼時(shí)所依賴(lài)的前置規(guī)則的插件集合,安裝完成后,在同目錄下配置使用babel,新建.babelrc文件,文件中輸入如下配置

npm install --save-dev babel-cli babel-preset-es2015 babel-preset-es2017

其中presets字段里添加我們的轉(zhuǎn)換規(guī)則,可以只寫(xiě)前邊提到的babel-preset- 對(duì)應(yīng)的關(guān)鍵字作為縮寫(xiě),plugins中可以配置一些定義轉(zhuǎn)換規(guī)則的插件。
配置完成后,就可以在我的終端中用babel對(duì)我的代碼進(jìn)行轉(zhuǎn)換了,直接執(zhí)行babel命令babel class.js 可以看到我們的代碼被轉(zhuǎn)換成了ES2015的版本。如下

PS D:\git\study\mytest> babel src/Object/class.js
'use strict';

Object.defineProperty(exports, "__esModule", {
 value: true
});

var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }

// constructer
var Person = function () {
 function Person(name, age, sex) {
  _classCallCheck(this, Person);

  this.name = name;
  this.age = age;
  this.sex = sex;
 }

 _createClass(Person, [{
  key: 'getInfo',
  value: function getInfo() {
   return 'name:' + this.name + ',age:' + this.age + ',sex:' + this.sex;
  }
 }]);

 return Person;
}();

var jone = new Person('jone', 18, 'man');
console.log(jone.name);
exports.default = Person;

如果要直接在終端中執(zhí)行呢,可以用如下命令babel-node xxxx,xxxx表示對(duì)應(yīng)的目錄及文件


這樣,我們就可以在終端中執(zhí)行大部分的ES6代碼了,也可以在學(xué)習(xí)新語(yǔ)法的時(shí)候,通過(guò)babel轉(zhuǎn)換成老的語(yǔ)法來(lái)幫助自己理解原理。

到此這篇關(guān)于解決node終端下運(yùn)行js文件不支持ES6語(yǔ)法的文章就介紹到這了,更多相關(guān)解決node終端下運(yùn)行js文件不支持ES6語(yǔ)法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Nodejs使用express連接數(shù)據(jù)庫(kù)mongoose的示例

    Nodejs使用express連接數(shù)據(jù)庫(kù)mongoose的示例

    數(shù)據(jù)庫(kù)并進(jìn)行操作通常需要使用第三方庫(kù),其中最流行的是mongoose,本文主要介紹了Nodejs使用express連接數(shù)據(jù)庫(kù)mongoose的示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • 利用nodejs監(jiān)控文件變化并使用sftp上傳到服務(wù)器

    利用nodejs監(jiān)控文件變化并使用sftp上傳到服務(wù)器

    這篇文章主要介紹了利用nodejs監(jiān)控文件變化并使用sftp上傳到服務(wù)器的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • 深入了解 Node的多進(jìn)程服務(wù)實(shí)現(xiàn)

    深入了解 Node的多進(jìn)程服務(wù)實(shí)現(xiàn)

    本文主要介紹了Node的多進(jìn)程服務(wù)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 安裝Node.js并創(chuàng)建Web程序

    安裝Node.js并創(chuàng)建Web程序

    這篇文章介紹了安裝Node.js并創(chuàng)建Web程序的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • node.js抓取并分析網(wǎng)頁(yè)內(nèi)容有無(wú)特殊內(nèi)容的js文件

    node.js抓取并分析網(wǎng)頁(yè)內(nèi)容有無(wú)特殊內(nèi)容的js文件

    nodejs獲取網(wǎng)頁(yè)內(nèi)容綁定data事件,獲取到的數(shù)據(jù)會(huì)分幾次相應(yīng),如果想全局內(nèi)容匹配,需要等待請(qǐng)求結(jié)束,在end結(jié)束事件里把累積起來(lái)的全局?jǐn)?shù)據(jù)進(jìn)行操作,本文給大家介紹node.js抓取并分析網(wǎng)頁(yè)內(nèi)容有無(wú)特殊內(nèi)容的js文件,需要的朋友參考下
    2015-11-11
  • Node.js API詳解之 dns模塊用法實(shí)例分析

    Node.js API詳解之 dns模塊用法實(shí)例分析

    這篇文章主要介紹了Node.js API詳解之 dns模塊用法,結(jié)合實(shí)例形式分析了Node.js API中dns模塊基本功能、相關(guān)函數(shù)與使用技巧,需要的朋友可以參考下
    2020-05-05
  • Node.js實(shí)現(xiàn)兼容IE789的文件上傳進(jìn)度條

    Node.js實(shí)現(xiàn)兼容IE789的文件上傳進(jìn)度條

    這篇文章給大家介紹了如何實(shí)現(xiàn)兼容IE789的文件上傳進(jìn)度條,如果你的工作用過(guò)上傳圖片或上傳大文件啥的,一般在IE低版本瀏覽器里,會(huì)切換到用flash解決,可是有些人肯定不會(huì)為了老舊IE的進(jìn)度條而去學(xué)flash,那么下面來(lái)一起看看吧。
    2016-09-09
  • Node使用Selenium進(jìn)行前端自動(dòng)化操作的代碼實(shí)現(xiàn)

    Node使用Selenium進(jìn)行前端自動(dòng)化操作的代碼實(shí)現(xiàn)

    這篇文章主要介紹了Node使用Selenium進(jìn)行前端自動(dòng)化操作的代碼實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Node.js如何響應(yīng)Ajax的POST請(qǐng)求并且保存為JSON文件詳解

    Node.js如何響應(yīng)Ajax的POST請(qǐng)求并且保存為JSON文件詳解

    這篇文章主要介紹了關(guān)于Node.js是如何響應(yīng)Ajax的POST請(qǐng)求并且保存為JSON文件的相關(guān)資料,文中介紹的很詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。
    2017-03-03
  • node.js的http.createServer過(guò)程深入解析

    node.js的http.createServer過(guò)程深入解析

    這篇文章主要給大家介紹了關(guān)于node.js的http.createServer過(guò)程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用node.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06

最新評(píng)論