• 让Node.js支持ES6的语法


    使用命令,全局安装es-checker

    cnpm install -g es-checker

    安装好之后,执行以下命令来查看Node.js对ES6的支持情况。

    es-checker

    可以从输出中查看当前版本的Node.js对ES6的支持情况。

    ECMAScript 6 Feature Detection (v1.4.1)
    
    =========================================
    Passes 38 feature Detections
    Your runtime supports 90% of ECMAScript 6
    =========================================

    添加ES6支持

    首先,使用cnpm init初始化cnpm工作目录,生成package.json文件。

    cnpm init -y

    接下来,需要安装Babel-cli。全局安装和本地安装都可以。

    // 全局安装
    cnpm install babel-cli -g
    // 本地安装
    cnpm install babel-cli --save

    然后,安装babel-preset-es2015来支持ES6的语法。

    cnpm install babel-preset-es2015 --save 

    安装完之后,还需要添加一个名为.babelrc的配置文件。方便babel-cli使用babel-preset-es2015。文件内容如下:

    {
        "presets": [
            "es2015"
        ],
        "plugins": []
    }

    测试ES6

    使用es-checker测试Node.js的时候,发现Node.js不支持import语法。我们可以测试import来验证babel的支持程度。

    创建一个index.js文件,内容如下:

    import { createServer } from 'http';
     
    var server=createServer(function(req,res){
    console.log(req.method+':'+req.url);
    //console.log(req.method+':'+req.url);
    res.writeHead(200,{'Content-Type': 'text/html'});
    res.end('<h1>Hello world!</h1>');
    }).listen(8060);
    console.log('http://localhost:8060');

    直接使用Node.js执行index.js:

    node index.js

    执行结果会报错:

    (function (exports, require, module, __filename, __dirname) { import { createServer } from 'http';
    ^

    SyntaxError: Unexpected token {
    at new Script (vm.js:79:7)
    at createScript (vm.js:251:10)
    at Object.runInThisContext (vm.js:303:10)
    at Module._compile (internal/modules/cjs/loader.js:657:28)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
    at startup (internal/bootstrap/node.js:282:19)

    Node.js不支持import语法。接下来,使用babel来执行index.js。

    全局安装的检测比较简单:

    babel-node index.js

    结果打印出a

    http://localhost:8088
    GET:/
    GET:/favicon.ico

    浏览器输入:http://127.0.0.1:8060/  显示如下就成功了!

    本地安装的话,可以使用cnpm script来执行命令。在package.json文件的scripts添加命令"babel": "babel-node index.js",然后执行:

    cnpm run babel

    可以看到控制台有打印出结果。

    http://localhost:8088
    GET:/
    GET:/favicon.ico

    浏览器输入:http://127.0.0.1:8060/  显示如下就成功了!

  • 相关阅读:
    yarn的安装和使用
    git clone不了项目文件的解决方法和----vscode操作git的方法
    vue使用swiper遇到的坑
    stylus介绍与引入
    Win10在当前目录快速打开cmd的方法
    git切换到指定分支,git新建分支与合并
    jQuery之表格隔行变色
    jQuery之onload与ready
    jQuery之多库共存
    jQuery之插件
  • 原文地址:https://www.cnblogs.com/sanday/p/10164278.html
Copyright © 2020-2023  润新知