EcmaScript6

EcmaScript6是JavaScript语言的新标准,6是版本号,于2015年6月发布,也叫作EcmaScript2015。由于新语言特性不停的加入,标准委员会以后决定每年6月发布一个新版本,因此以后按年划分版本比较适合。

浏览器支持

目前主流浏览器和node环境对EcmaScript6支持都已经比较完善,但是由于传统的JavaScript标准在浏览器中已经使用了相当长的一段时间,有大量的代码资源可用,因此大多数传统项目仍使用旧语言标准。对于一些新兴前端框架,大多是使用EcmaScript6或TypeScript,项目通过编译成EcmaScript5标准的代码部署。而node是新兴的一个领域,其生态则完全构建在新语言标准上。

使用EcmaScript6

在node中可以直接使用大部分语言新特性,如果部署在浏览器中,建议使用转码工具将代码转换到EcmaScript5标准,Babel是最常用的转码工具。

基于浏览器搭建开发环境

我们可以使用Webpack将我们编写的代码打包,然后用Babel插件将代码转换为ES5(随着时间的推移,如果你使用最新的浏览器,可能这一步也不是必须的,但生产环境依然还是需要使用Babel),部署到浏览器中运行。

package.json

{
  "name": "myapp",
  "version": "1.0.0",
  "description": "a simple test project",
  "main": "index.js",
  "scripts": {
    "build": "webpack --mode production"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {},
  "devDependencies": {
    "@babel/core": "^7.11.0",
    "@babel/plugin-transform-runtime": "^7.11.0",
    "@babel/preset-env": "^7.11.0",
    "babel-loader": "^8.1.0",
    "webpack": "^4.44.1",
    "webpack-cli": "^3.3.12"
  }
}

webpack.config.js

const path = require('path');
module.exports = {
    entry: './index.js',
    output: {
        filename: 'bundle.js',
        path: path.resolve(__dirname, './dist')
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /node_modules/,
                loader: "babel-loader"
            }
        ]
    },
};

.babelrc

{
    "presets": [
        "@babel/preset-env"
    ],
    "plugins": [
        [
            "@babel/plugin-transform-runtime",
            {
                "regenerator": true
            }
        ]
    ]
}

编译代码:

npm run build
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。