使用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 相关文章推荐
清除网页历史记录,屏蔽后退按钮!
Dec 22 Javascript
javascript 继承实现方法
Aug 26 Javascript
JavaScript CSS修改学习第三章 修改样式表
Feb 19 Javascript
深入理解jQuery 事件处理
Jun 14 Javascript
基于js实现二级下拉联动
Dec 17 Javascript
jQuery动态生成表格及右键菜单功能示例
Jan 13 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
Apr 28 Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
May 15 Javascript
JS判断数组里是否有重复元素的方法小结
May 21 Javascript
JQuery事件冒泡和默认行为代码实例
May 13 jQuery
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
Oct 27 Javascript
Vue3中toRef与toRefs的区别
Mar 24 Vue.js
使用异步组件优化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实现的简单压缩英文字符串的代码
2008/04/24 PHP
php上传apk后自动提取apk包信息的使用(示例下载)
2013/04/26 PHP
邮箱正则表达式实现代码(针对php)
2013/06/21 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
destoon在各个服务器下设置URL Rewrite(伪静态)的方法
2014/06/21 Servers
php清除和销毁session的方法分析
2015/03/19 PHP
Yii控制器中操作视图js的方法
2016/07/04 PHP
PHP中in_array函数使用的问题与解决办法
2016/09/11 PHP
Thinkphp5框架实现图片、音频和视频文件的上传功能详解
2019/08/27 PHP
javascript Discuz代码中的msn聊天小功能
2008/05/25 Javascript
javascript三元运算符用法实例
2015/04/16 Javascript
举例讲解AngularJS中的模块
2015/06/17 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
使用Angular 6创建各种动画效果的方法
2018/10/10 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
JSON获取属性值方法代码实例
2020/06/30 Javascript
react使用antd表单赋值,用于修改弹框的操作
2020/10/29 Javascript
python网页请求urllib2模块简单封装代码
2014/02/07 Python
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
python创建一个最简单http webserver服务器的方法
2015/05/08 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
python 读写文件,按行修改文件的方法
2018/07/12 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
2019/06/04 Python
Python shelve模块实现解析
2019/08/28 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
教育学专业实习生的自我鉴定
2013/11/26 职场文书
正风肃纪剖析材料
2014/02/18 职场文书
诚信考试标语
2014/06/24 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
HTML5来实现本地文件读取和写入的实现方法
2021/05/25 HTML / CSS
MySQL控制流函数(-if ,elseif,else,case...when)
2022/07/07 MySQL