使用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 相关文章推荐
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
Mar 21 Javascript
js之事件冒泡和事件捕获详细介绍
Oct 28 Javascript
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
Apr 01 Javascript
JavaScript实现多个重叠层点击切换效果的方法
Apr 24 Javascript
浅谈angularJS 作用域
Jul 05 Javascript
js+html5实现的自由落体运动效果代码
Jan 28 Javascript
实例解析jQuery工具函数
Dec 01 Javascript
js数字舍入误差以及解决方法(必看篇)
Feb 28 Javascript
Javascript防止图片拉伸的自适应处理方法
Dec 26 Javascript
js神秘的电报密码 哈弗曼编码实现
Sep 10 Javascript
Vue3.x源码调试的实现方法
Oct 13 Javascript
Vue实现附件上传功能
May 28 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 smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
PHP获取POST数据的几种方法汇总
2015/03/03 PHP
php英文单词统计器
2016/06/23 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
JavaScript 事件冒泡简介及应用
2010/01/11 Javascript
在JavaScript里嵌入大量字符串常量的实现方法
2013/07/07 Javascript
Jquery 实现grid绑定模板
2015/01/28 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
js事件冒泡与事件捕获详解
2017/02/20 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
js 提取某()特殊字符串长度的实例
2017/12/06 Javascript
vue-cli启动本地服务局域网不能访问的原因分析
2018/01/22 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
layui的数据表格+springmvc实现搜索功能的例子
2019/09/28 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
解决vue init webpack 下载依赖卡住不动的问题
2020/11/09 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
python文件比较示例分享
2014/01/10 Python
tensorflow实现softma识别MNIST
2018/03/12 Python
Python中elasticsearch插入和更新数据的实现方法
2018/04/01 Python
python xpath获取页面注释的方法
2019/01/14 Python
Python合并同一个文件夹下所有PDF文件的方法
2019/03/11 Python
python远程连接MySQL数据库
2019/04/19 Python
Python迭代器iterator生成器generator使用解析
2019/10/24 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
CSS 3.0 结合video视频实现的创意开幕效果
2020/06/01 HTML / CSS
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
领导班子三严三实心得体会
2014/10/13 职场文书
使用 JavaScript 制作页面效果
2021/04/21 Javascript
Go 中的空白标识符下划线
2022/03/25 Golang
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA
nginx静态资源的服务器配置方法
2022/07/07 Servers