使用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 相关文章推荐
newxtree.js代码
Mar 13 Javascript
js对数字的格式化使用说明
Jan 12 Javascript
Javascript delete 引用类型对象
Nov 01 Javascript
JavaScript实现快速排序的方法
Jul 31 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
Jun 22 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
Mar 08 Javascript
Angular X中使用ngrx的方法详解(附源码)
Jul 10 Javascript
新版vue-cli模板下本地开发环境使用node服务器跨域的方法
Apr 03 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
Jul 05 Javascript
Vue项目History模式404问题解决方法
Oct 31 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
May 04 jQuery
京东优选小程序的实现代码示例
Feb 25 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类中Static方法效率测试代码
2010/10/17 PHP
php学习之简单计算器实现代码
2011/06/09 PHP
php max_execution_time执行时间问题
2011/07/17 PHP
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
php 判断字符串中是否包含html标签
2014/02/17 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
JS date对象的减法处理实现代码
2010/12/28 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
基于JavaScript实现全选、不选和反选效果
2017/02/15 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
swiper自定义分页器使用方法详解
2020/09/14 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
python每隔N秒运行指定函数的方法
2015/03/16 Python
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
Python大数据之网络爬虫的post请求、get请求区别实例分析
2019/11/16 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
Django 构建模板form表单的两种方法
2020/06/14 Python
html5 canvas绘制矩形和圆形的实例代码
2016/06/16 HTML / CSS
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
李维斯牛仔裤英国官方网站:Levi’s英国
2019/10/10 全球购物
会议邀请函范文
2014/01/09 职场文书
高二美术教学反思
2014/01/14 职场文书
小学英语教学反思案例
2014/02/04 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
2014年教育工作总结
2014/11/26 职场文书
优秀班主任材料
2014/12/16 职场文书
学校捐书活动总结
2015/05/08 职场文书
刑事案件上诉状
2015/05/23 职场文书
红色电影观后感
2015/06/18 职场文书
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android
Spring中的@Transactional的工作原理
2022/06/05 Java/Android