前端开发打包工具——webpack(1)
什么是webpack?
webpack 是一个打包模块化 javascript 的工具,在webpack 里一切文件皆模块,通过 loader 转换文件,通过 plugin 注入钩子,最后输出由多个模块组合成的文件,webpack 专注构建模块化项目; webpack 可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript 模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式以供浏览器使用
我对打包工具的理解就是
- 把不同模块的代码代码转译成一样的,把es6的转译成es5的或者更老的
- 把不兼容的变成兼容的
- 把近些年牛X的TS写的变成JS写的
- 把格式分明的,本来人能看懂的变成一坨人看不懂的
- 把本来臃肿的,可能存在,哦不,肯定存在的一堆垃圾代码删除,比如用不到的,或者多余的空格,或者复杂的变量变成简洁的(就相当于加密了,防止别人剽窃)
https://zhuanlan.zhihu.com/p/455365896https://zhuanlan.zhihu.com/p/455365896
webpack官网:
webpack
webpack环境安装
小黑窗输入:
npm install webpack webpack-cli -g
npm install webpack webpack-cli -g//不指定版本,默认下载最新版本,全局安装以后直接使用
mkdir webpack-demo //创建项目文件夹,随意名字同js变量名规则
cd webpack-demo //进入项目文件夹
npm init -y //生成项目配置文件创建一个webpack.config.js的打包配置文件
代码:
module.exports={ 项目入口配置,项目出口配置,加载器配置,插件配置,开发模式配置,其他
}
项目结构
+alipay|+app|-test.js|-test2.js|-test3.js|-test4.js|-test5.js|-webpack.config.js|-package.json
入口entry
测试文件
test1.js
console.log(777)
test2.js
var obj={username:"jack",age:14}
export default obj
test3.js
console.log(6666)
import obj from './test2'
console.log(obj)
webpack.config.js
const path = require("path")
module.exports = {// 1.直接配置入口文件entry:path.join(__dirname,"./src/test3.js")// 2.配置基础目录,然后配置入口文件context:path.join(__dirname,"./src"),entry:"./test3.js"// 3.多入口多出口,属性名是相应的js文件导出时的文件名context:path.join(__dirname,"./src"),entry:{a:'./test3.js',b:'./test1.js'}// 4.多入口,导出为一个文件,文件名默认为maincontext: path.join(__dirname, "./src"),entry: ['./test3.js','./test1.js']// 5.入口配置context: path.join(__dirname,"./src"),entry: {a:{import: './test3.js',filename:'pages/[name][hash:6].js'},b:{import:'./test1.js',filename:'pages/[name][hash]666.js'}}
module,chunk,bundle分别是什么 ?
1、module:开发中的每个文件都可以看作是 module,模块不局限于js,也包含css,图片等
2、chunk:表示代码块,一个 chunk 可以由多个模块组成
3、bundle:最终打包完成的文件,一般就是和 chunk 一一对应的关系,bundle就是对 chunk 进行编译压缩打包等处理后的产出
出口output
output
位于对象最顶级键(key),包括了一组选项,指示 webpack 如何去输出、以及在哪里输出你的「bundle、asset 和其他你所打包或使用 webpack 载入的任何内容」
mode: "none",context: __dirname + '/src',// entry:'./test.js',entry: {a: {import:'./test3.js',filename:'pages/[name][hash:6]999.js'}//这里设置的filename会覆盖output设置的filename},output: {asyncChunks: true, //创建按需加载的异步 chunk。path:__dirname+"/dist2",//输出的目录,绝对路径,默认dist// filename: 'bundle.js', //输出的文件名filename: '[name]-666-[id]bundle[hash:5]666.js', //输出的文件名,[hash:5]为5位哈希值,[id]为打包的chunk的id,[name]为入口的属性名,缺省则为mian,这几个一定记住 vue和react的css作用域-就是这个几个设计的// library: 'hqyj',//库名library: {name: 'MyLibrary', //库名type: 'var', //配置将库暴露的方式。('var'、'module'、'assign'、'assign-properties'、'this'、'window'、'self'、'global'、'commonjs'、'commonjs2'、'commonjs-module'、'commonjs-static'、'amd'、'amd-require'、'umd'、'umd2'、'jsonp' 以及 'system')},// libraryTarget: 'umd',//配置如何暴露 library,优先级比library高但是:[请使用 output.library.type 代理,因为我们可能在未来放弃对 output.libraryTarget 的支持。]auxiliaryComment: 'Test Comment', //各种模块化导出技术的统一注释(把type设置为umd) //各种模块化导出技术的分别注释(webpack允许你的项目使用各种模块化技术 它都可以识别并打包)// auxiliaryComment: {// root: 'Root Comment',// commonjs: 'CommonJS Comment',// commonjs2: 'CommonJS2 Comment',// amd: 'AMD Comment',// }, clean: true, // 在生成文件之前清空 output 目录// clean: {// dry: true, // 小黑窗打印而不是删除应该移除的静态资源// },// clean: {// keep: /ignored\/dir\//, // 保留 'ignored/dir' 下的静态资源不删// // keep(asset) {// // return asset.includes('ignored/dir');//同上// // },// }, }
前端开发打包工具——webpack(1)相关推荐
- 前端自动化打包工具--webpack
前端自动化打包工具–webpack 背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的 ...
- 浅谈前端项目打包工具webpack和gulp
webpack:一个模块打包工具(更适合单页面spa模块开发) Webpack更侧重于模块打包,把开发中的所有资源(图片.js文件.css文件等)看成模块.Webpack是通过loader(加载器)和 ...
- 前端模块打包工具都有哪些---kalrry---ing
前端模块打包工具都有哪些---kalrry---ing 前言 一.Webpack 二.Parcel 三.Rollup 四.三者对比 END---待学 前言 Win配置记录 Mac配置记录 一.Webp ...
- Web前端开发必备工具推荐
http://gaohaixian.blog.163.com/blog/static/12326010520114265223489/不管你做前端开发还是网页重构,前端工具都起着非常重要的作用,这里向 ...
- web前端开发小工具集合
收集的一些轻量级非常实用的前端开发小工具,以后还会不定期进行更新,现将目前收集的信息列表如下: CSS 3相关 1.CSS3样式生成器:http://www.css88.com/tool/css3 ...
- 前端开发必备工具-网页调试工具
前端开发必备工具-网页调试工具 在前端开发中我们经常会要调试页面,主要html.css调试和js调试,这里整理一些工具: 一.firefox网页调试插件 1.firefox插件Firebug 主要用于 ...
- java前端编程用什么软件_java前端开发的工具
1 java前端开发的工具 在实际开发中,Java也有多个应用方向,手机开发.桌面开发.企业级应用开发.嵌入式开发等.所以学好Java,无疑多了一把通往成功大门的钥匙.下面小编给大家说说java前端开 ...
- Brackets前端开发IDE工具
Brackets是一个开源的前端开发IDE工具,网页设计师和前端开发人员必备的前端开发IDE工具. 它能够使你在开发WEB网站实时预览你的网页,目前版本只适用于Chrome浏览器可以实时预览效果 支持 ...
- 前端打包工具webpack和Vite
我们见证了 webpack.Rollup 和 Parcel 等工具的变迁,它们极大地改善了前端开发者的开发体验. 但当我们开始构建越来越大型的应用时,通常需要很长时间才能启动开发服务器,文件修改后的效 ...
最新文章
- 开源的Blink和Spark3.0,谁将称霸大数据领域?
- java 页面 分离 实现_JavaBean实现JSP页面和代码分离
- 杂谈:《宫锁心玉》的穿越硬伤
- matlab 常用命令
- 重拾面向对象软件设计
- matlab转换成vc,如何将matlab65函数转换成vc++60动态链接库.doc
- LQ训练营(C++)学习笔记_广度优先搜索
- 数据可视化【十】绘制地图
- [css] scroll-snap-align属性的应用场景是什么?
- linux system函数传参,Linux系统调用例程system_call和参数传递
- android 跨应用,Android跨应用获取资源
- 盘点云计算领域不可不读的9本书
- 18.go 日志监控系统
- 【大话设计模式】第0章 面向对象基础
- gdb reading symbols xxxx 段错误
- 如何使用Matlab合并Excel表格
- Css+Jquery实现点击图片放大缩小预览 图片预览 查看大图
- java全套学习课程
- NodeJS v0 10 8升级安装
- sync.Map详解