使用webpack编译es6代码的方法步骤


Posted in Javascript onApril 28, 2019

前言

团队使用的 webpack 功能很强大,有时候会碰到编译失败的情况,总得找工具的作者解决问题,自己很少去追究原因,感觉对于 webpack 的认知总是一知半解。因此,从本篇文章开始,自己从零开始配置 webpack,认真体验一下配置过程。文章内容过于简单,如果有 webpack 使用经验的人,就不用往下看啦。

版本说明

本文使用的 webpack 的版本为:4.30.0

开始搭建

本文的目的是使用 webpack 完成 es6 的编译,没想到过程过于简单。

安装 node 与 npm 镜像

安装 node
安装 npm 淘宝镜像

安装 webpack 与 webpack-cli

打开或者新建一个项目,使用命令行安装 webpack 与 webpack-cli:

$ cnpm install --save-dev webpack-cli

安装 es6 的编译组件

使用命令行安装 babel-loader:

$ cnpm install --save-dev babel-loader @babel/core @babel/preset-env webpack

创建文件目录

我创建的文件目录如下:

webpack-es6
 |- /dist
 |- index.html
 |- /src
 |- index.js

定义打包的入口与出口

项目目录下新建 webpack.config.js 文件,并按照文件目录配置打包的入口和出口:

const path = require('path');
module.exports = {
 entry: './src/index.js', // 定义入口 js ,也就是编译前的 js
 output:{
  filename:'index.js', // 定义打包输出的 js 的文件名
  path:path.resolve(__dirname,'dist') // 输出 js 的目录
 }
};

添加 js 文件的处理规则

在 webpack.config.js 文件中添加 js 文件的处理规则:

const path = require('path');
module.exports = {
 entry: './src/index.js', 
 output:{
  filename:'index.js',
  path:path.resolve(__dirname,'dist')
 },
 // 以下代码为新添加代码
 module:{
  rules:[
   {
    test: /\.js$/, // 匹配所有 js 文件
    loader: 'babel-loader' // 使用 babel-loader 处理 js 文件
   },
  ]
 },
};

添加 npm 脚本

在 package.json 文件中添加 npm 脚本:

{
 //... 省略代码
 "scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "build": "webpack" // 添加此行,使用 build 命令代替 npx 命令
 },
 //... 省略代码
 }

配置完成

以上就完成了 webpack 打包 es6 的配置,此时的文件目录如下:

webpack-es6
 |- node_modules
 |- /dist
  |- index.html
 |- /src
  |- index.js
 |- package.json
 |- package-lock.json
 |- webpack.config.js

添加代码

接下来我们添加代码测试配置是否成功。

文件 ./src/index.js 添加代码:

class Class{
 constructor() {
 this.str = 'success';
 }
 appendToBody(){
 const p = document.createElement('p');
 p.innerHTML = this.str;
 document.body.appendChild(p);
 }
}
const obj = new Class();
obj.appendToBody();

文件 ./dist/index.html 添加代码:

</html>
<body></body>
<script src="./index.js"></script>
</html>

编译程序

运行命令行

$ npm run build

打开 index.html ,如果页面中有 success ,则说明 es6 编译完成。

总结

没想到 webpack 编译 es6 配置如此简单,下一步使用 webpack 编译 postcss 。

参考链接

webpack 中文网:www.webpackjs.com/

 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js导航菜单(自写)简单大方
Mar 28 Javascript
在每个匹配元素的外部插入新元素的方法
Dec 20 Javascript
javascript中的括号()用法小结
Apr 14 Javascript
jquery处理json数据实例分析
Jun 03 Javascript
《JavaScript函数式编程》读后感
Aug 07 Javascript
jQuery插件开发汇总
May 15 Javascript
js Canvas实现圆形时钟教程
Sep 19 Javascript
用Vue.js实现监听属性的变化
Nov 17 Javascript
浅谈JavaScript的自动垃圾收集机制
Dec 15 Javascript
jQuery实现简单的下拉菜单导航功能示例
Dec 07 jQuery
Node+OCR实现图像文字识别功能
Nov 26 Javascript
微信小程序 授权登录详解(附完整源码)
Aug 23 Javascript
使用异步组件优化Vue应用程序的性能
Apr 28 #Javascript
详解微信小程序获取当前时间及日期的方法
Apr 28 #Javascript
vue自定义js图片碎片轮播图切换效果的实现代码
Apr 28 #Javascript
如何在微信小程序里面退出小程序的方法
Apr 28 #Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
Apr 28 #Javascript
详解小程序退出页面时清除定时器
Apr 28 #Javascript
详解在Javascript中进行面向切面编程
Apr 28 #Javascript
You might like
PHP中ltrim与rtrim去除左右空格及特殊字符实例
2016/01/07 PHP
php验证身份证号码正确性的函数
2016/07/20 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
JS代码格式化和语法着色V2
2006/10/14 Javascript
豆瓣网的jquery代码实例
2008/06/15 Javascript
JavaScript 无符号右移赋值操作
2009/04/17 Javascript
JavaScript 学习笔记一些小技巧
2010/03/28 Javascript
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
按下Enter焦点移至下一个控件的实现js代码
2013/12/11 Javascript
返回上一页并自动刷新的JavaScript代码
2014/02/19 Javascript
JavaScript中使用Math.PI圆周率属性的方法
2015/06/14 Javascript
js实现简单秒表走动的时钟特效
2020/03/25 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
layui form表单提交之后重新加载数据表格的方法
2019/09/11 Javascript
JS实现网站吸顶条
2020/01/08 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
Python之父谈Python的未来形式
2016/07/01 Python
Python入门_条件控制(详解)
2017/05/16 Python
python实现读Excel写入.txt的方法
2018/04/29 Python
python将控制台输出保存至文件的方法
2019/01/07 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
2019/08/13 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
HTML5 本地存储实现购物车功能
2017/09/07 HTML / CSS
html5 datalist标签使用示例(自动完成组件)
2014/05/04 HTML / CSS
Servlet的实例是在生命周期什么时候创建的?配置servlet最重要的是什么?
2012/05/30 面试题
医学专业五年以上个人求职信
2013/12/03 职场文书
个人对照检查材料
2014/02/12 职场文书
党的群众路线教育实践活动个人整改措施落实情况
2014/11/04 职场文书
2014年科普工作总结
2014/12/06 职场文书
干部考核工作总结2015
2015/07/24 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js