使用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完成代码前最好对其做5件事
Apr 07 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
Apr 25 Javascript
JavaScript验证电子邮箱的函数
Aug 22 Javascript
jquery取子节点及当前节点属性值的方法
Sep 09 Javascript
JavaScript使用DeviceOne开发实战(四)仿优酷视频应用
Dec 02 Javascript
Angularjs注入拦截器实现Loading效果
Dec 28 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
Feb 17 Javascript
js实现导航吸顶效果
Feb 24 Javascript
JS请求servlet功能示例
Jun 01 Javascript
微信小程序局部刷新触发整页刷新效果的实现代码
Nov 21 Javascript
JQuery属性操作与循环用法示例
May 15 jQuery
nuxt 路由、过渡特效、中间件的实现代码
Nov 06 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 表单数据的获取代码
2009/03/10 PHP
PHP 程序员也要学会使用“异常”
2009/06/16 PHP
php操作mongoDB实例分析
2014/12/29 PHP
CI框架表单验证实例详解
2016/11/21 PHP
User Scripts: Video Download by User Scripts
2007/05/14 Javascript
jQuery ctrl+Enter shift+Enter实现代码
2010/02/07 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
javascript测试题练习代码
2012/10/10 Javascript
JS图片根据鼠标滚动延时加载的实例代码
2013/07/13 Javascript
NodeJS url验证(url-valid)的使用方法
2013/11/18 NodeJs
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
es6学习笔记之Async函数基本教程
2017/05/11 Javascript
NodeJs 文件系统操作模块fs使用方法详解
2018/11/26 NodeJs
js实现随机数小游戏
2019/06/28 Javascript
layui点击按钮页面会自动刷新的解决方案
2019/10/25 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
vue跳转方式(打开新页面)及传参操作示例
2020/01/26 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
python在多玩图片上下载妹子图的实现代码
2013/08/13 Python
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
python如何将图片转换为字符图片
2020/08/19 Python
python实现比较文件内容异同
2018/06/22 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
详解Python下Flask-ApScheduler快速指南
2018/11/04 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
介绍一下sql server的安全性
2014/08/10 面试题
水污染治理专业毕业生推荐信
2013/11/14 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
2014年度考核工作总结
2014/12/24 职场文书
新年晚会主持词开场白
2015/05/28 职场文书
2015年机关作风和效能建设工作总结
2015/07/23 职场文书
2016先进工作者事迹材料
2016/02/25 职场文书
2016小学优秀教师先进事迹材料
2016/02/26 职场文书
Python提取PDF指定内容并生成新文件
2021/06/09 Python
以下牛机,你有几个
2022/04/05 无线电