网站首页 > 教程文章 正文
webpack的简介和安装
官网:
https://doc.webpack-china.org/
webpack 是一个模块打包器。它的主要目标是将 JavaScript 文件打包在一起, 打包后的文件用于在浏览器中使用, 但它也能够胜任转换(transform)、打包(bundle)或包裹(package)任何资源(resource or asset)
全局安装webpack工作流工具:
npm install -g webpack@3
webpack有4代版本, 优点是:打包合并文件速度快, 快了90%。
webpack基本使用
在项目文件夹中运行CMD命令, webpack打包命令:
webpack main.js all.js
main.js是主入口文件
all.js 是出口文件(被打包的)
没有yuan.js的事情, 因为在main.js中import {mianji} from "./yuan.js"; 所以webpack就链着import寻找yuan.js进行打包合并。
webpack.config.js文件
在项目中的根目录写webpack.config.js文件, 来指导webpack工作, 如同.babelrc文件一样, 指导babel工作。
webpack.config.js文件的配置:
https://webpack.docschina.org/configuration/
先配置一个文件, 以后用就行了:
const path = require('path');
module.exports = {
//程序的入口文件
entry:"./www/app/main.js",
//程序的出口(配置打包编译后的资源)
output:{
//打包文件输出的路径
path: path.resolve(__dirname, "./www/dist"),
//打包文件的名称
filename: 'all.js'
},
//自动监听文件的变化
watch:true
}
webpack.config.js文件配置好后,就可以使用webpack命令打包了。
babel-loader
webpack只是帮我们智能合并打包文件, 但是没有翻译ES6、7、8语法为ES5语法。
所以现在的任务是, 在webpack打包的过程中, 对每一个js文件用babel进行翻译。
webpack提供了babel-loader功能, 可以让webpack在打包文件时, 顺便的翻译ES678语法。
安装依赖:
npm install --save-dev babel-core@6
npm install --save-dev babel-loader@7
npm install --save-dev babel-preset-es2015
npm install --save-dev babel-preset-es2016
babel-core 是babel的核心
babel-loader 是babel和webpack一起使用的桥梁
babel-preset-es2015 是翻译的字典
注意:babel-loader默认安装的是8代版本, 但babel-core默认安装的是6, 所以版本不兼容, 会报错。解决方法是babel-loader降级安装7代, 或者babel-core升级安装为7代。
安装完3个依赖, 并配置好webpack.config.js文件后, webpack不但能打包, 还能翻译了。
webpack.config.js文件配置
const path = require('path');
module.exports = {
//配置程序的入口资源
entry:"./www/app/main.js",
//程序的出口(配置打包编译后的资源)
output:{
//打包文件输出的路径
path: path.resolve(__dirname, "./www/dist"),
//打包文件的名称
filename: 'all.js'
},
//监听文件的变化(自动打包)
watch:true,
//资源处理,配置webpack模块插件、loader等
module:{
//关于模块的配置规则
rules:[{
// 模块规则(配置 loader、解析器等选项)
test: /\.js$/, //解析的时候匹配js文件
loader:"babel-loader",
//翻译什么文件夹中的文件
include: [ path.resolve(__dirname, "www/app")],
//不翻译什么文件夹中的文件
exclude: [ path.resolve(__dirname, "node_modules")],
//配置翻译语法
options:{
presets:["es2015","es2016"]
}
}]
}
}
之前写的.babelrc文件, 现在webpack在webpack.config.js文件中提供了,所以可以删除了。
猜你喜欢
- 2025-03-29 Webpack 配置文件详解(webpack配置文件详解)
- 2025-03-29 由浅入深,66条JavaScript面试知识点(七)
- 2025-03-29 webpack的几个常见loader源码浅析,动手实现一个md2html-loader
- 2025-03-29 轻量级H5 app开发实践之总结(h5开发app用什么工具好)
- 2025-03-29 聊个5毛,微前端探坑(微前端有必要吗)
- 2025-03-29 webpack 常见loader原理剖析,动手实现一个md2html的loader
- 2025-03-29 vue前端开发步骤(前端vue项目开发流程及架构)
- 2025-03-29 小技巧,如何使用 webpack 降低前端资源文件维护成本
- 2025-03-29 15个具有收藏意义的webpack插件(webpack里面的插件是怎么实现的)
- 2025-03-29 Webpack和JShaman相比有什么不同?
- 05-11阿里开源MySQL中间件Canal快速入门
- 05-11MyBatis插件开发实战:手写一个分页插件
- 05-11Flask数据库——SQLAlchemy
- 05-11MySQL 到 Hazelcast Cloud 实时数据同步实操分享
- 05-11sqlmap 详解
- 05-11一篇文章让你学会Elasticsearch中的查询
- 05-11Mysql性能优化这5点你知道吗?简单却容易被初学者忽略!
- 05-11Spring Boot 实现 MySQL 读写分离技术
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)