使用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 相关文章推荐
建立良好体验度的Web注册系统ajax
Jul 09 Javascript
JavaScript拆分字符串时产生空字符的解决方案
Sep 26 Javascript
javascript中类的定义方式详解(四种方式)
Dec 22 Javascript
基于jquery实现图片相关操作(重绘、获取尺寸、调整大小、缩放)
Dec 25 Javascript
结合mint-ui移动端下拉加载实践方法总结
Nov 08 Javascript
vue2.0使用swiper组件实现轮播的示例代码
Mar 03 Javascript
react redux入门示例
Apr 19 Javascript
JS通过位运算实现权限加解密
Aug 14 Javascript
JavaScript中this用法学习笔记
Mar 17 Javascript
vue实现新闻展示页的步骤详解
Apr 11 Javascript
js模拟实现烟花特效
Mar 10 Javascript
OpenLayers加载缩放控件使用方法详解
Sep 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面向对象编程快速入门
2006/10/09 PHP
通过html表格发电子邮件
2006/10/09 PHP
php常用Stream函数集介绍
2013/06/24 PHP
php截取html字符串及自动补全html标签的方法
2015/01/15 PHP
纯php生成随机密码
2015/10/30 PHP
微信开发之获取JSAPI TICKET
2017/07/07 PHP
Jquery 插件开发笔记整理
2011/01/17 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
2013/12/02 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
仅9张思维导图帮你轻松学习Javascript 就这么简单
2016/06/01 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
使用JavaScript根据图片获取条形码的方法
2017/07/04 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
Vue数组响应式操作及高阶函数使用代码详解
2020/08/01 Javascript
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
如何在sae中设置django,让sae的工作环境跟本地python环境一致
2017/11/21 Python
Python 支付整合开发包的实现
2019/01/23 Python
Python 日志logging模块用法简单示例
2019/10/18 Python
python:HDF和CSV存储优劣对比分析
2020/06/08 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
美国用餐电影院:Alamo Drafthouse Cinema
2020/01/23 全球购物
戴尔荷兰官方网站:Dell荷兰
2020/10/04 全球购物
大学本科生的个人自我评价
2013/12/09 职场文书
班组长安全职责
2014/01/05 职场文书
节约电力资源的建议书
2014/03/12 职场文书
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
高三励志标语
2014/06/05 职场文书
中职生自荐信范文
2014/06/15 职场文书
十一月早安语录:把心放轻,人生就是一朵自在的云
2019/11/04 职场文书
python 实现mysql自动增删分区的方法
2021/04/01 Python
Python基本数据类型之字符串str
2021/07/21 Python
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis
配置nginx负载均衡
2022/05/06 Servers