微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

babel转义es6---简单的写,更好的用

npm init ---初始化环境

npm install ---安装包包

npm  install xxx  --save-dev安装到devDependencies中,dexDependencies用于本地环境开发的时候

npm install xxx   认安装到dependencies中  dependencies用于发布环境

用于安装babel的包包

npm install --save-dev @babel/core

npm install @babel/preset-env --save-dev

npm install @babel/cli

package.json中配置调试

 "build": "babel src -d dist"    向外添加dist文件夹中  -d就是--out-dir的意思

执行npm  run build就会创建一个dist文件夹,并将转换后的代码放到dist中

转义前的es6代码

const move = ((el, { x = 0, y = 0 } = {}, end = () => {}) => {
    el.style.transform = `translate3d(${x}px,${y}px,0)`;
    el.addEventListener('transitionend', () => {
        end();
    }, false)
});
const movePromise = (el, point) => {
    return new Promise(resolve => {
        move(el, point, () => {
            resolve();
        })
    })
};
const Box = document.getElementById("Box");
document.addEventListener('click', () => {
    movePromise(Box, {
        x: 150
    }).then(() => {
        return movePromise(Box, {
            x: 150,
            y: 150
        })
    }).then(() => {
        return movePromise(Box, {
            x: 0,
            y: 150
        })
    }).then(() => {
        return movePromise(Box, {
            x: 0,
            y: 0
        })
    })
})

通过babel转换后的代码

"use strict";

var move = function move(el) {
  var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
      _ref$x = _ref.x,
      x = _ref$x === void 0 ? 0 : _ref$x,
      _ref$y = _ref.y,
      y = _ref$y === void 0 ? 0 : _ref$y;

  var end = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};
  el.style.transform = "translate3d(".concat(x, "px,").concat(y, "px,0)");
  el.addEventListener('transitionend', function () {
    end();
  }, false);
};

var movePromise = function movePromise(el, point) {
  return new Promise(function (resolve) {
    move(el, point, function () {
      resolve();
    });
  });
};

var Box = document.getElementById("Box");
document.addEventListener('click', function () {
  movePromise(Box, {
    x: 150
  }).then(function () {
    return movePromise(Box, {
      x: 150,
      y: 150
    });
  }).then(function () {
    return movePromise(Box, {
      x: 0,
      y: 150
    });
  }).then(function () {
    return movePromise(Box, {
      x: 0,
      y: 0
    });
  });
});

先写简单的es6代码,为了更好的兼容,通过babel将其转换。

最后将转换后的文件(转换后的文件自动保存到dist文件中,在webpack中有配置到)引入到html文件中,所以html中<script src="../dist/index.js"></script>

<!DOCTYPE html>
<html lang="en">

<head>
    <Meta charset="UTF-8">
    <Meta http-equiv="X-UA-Compatible" content="IE=edge">
    <Meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>使用babel编译es6的代码</title>
</head>
<style>
    * {
        margin: 0;
        padding: 0;
    }
    
    #Box {
        width: 300px;
        height: 300px;
        background-color: red;
        transition: all 0.5s;
    }
</style>

<body>
    <div id="Box"></div>
</body>
<script src="../dist/index.js"></script>

</html>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐