什么是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)相关推荐

  1. 前端自动化打包工具--webpack

    前端自动化打包工具–webpack 背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的 ...

  2. 浅谈前端项目打包工具webpack和gulp

    webpack:一个模块打包工具(更适合单页面spa模块开发) Webpack更侧重于模块打包,把开发中的所有资源(图片.js文件.css文件等)看成模块.Webpack是通过loader(加载器)和 ...

  3. 前端模块打包工具都有哪些---kalrry---ing

    前端模块打包工具都有哪些---kalrry---ing 前言 一.Webpack 二.Parcel 三.Rollup 四.三者对比 END---待学 前言 Win配置记录 Mac配置记录 一.Webp ...

  4. Web前端开发必备工具推荐

    http://gaohaixian.blog.163.com/blog/static/12326010520114265223489/不管你做前端开发还是网页重构,前端工具都起着非常重要的作用,这里向 ...

  5. web前端开发小工具集合

    收集的一些轻量级非常实用的前端开发小工具,以后还会不定期进行更新,现将目前收集的信息列表如下:   CSS 3相关 1.CSS3样式生成器:http://www.css88.com/tool/css3 ...

  6. 前端开发必备工具-网页调试工具

    前端开发必备工具-网页调试工具 在前端开发中我们经常会要调试页面,主要html.css调试和js调试,这里整理一些工具: 一.firefox网页调试插件 1.firefox插件Firebug 主要用于 ...

  7. java前端编程用什么软件_java前端开发的工具

    1 java前端开发的工具 在实际开发中,Java也有多个应用方向,手机开发.桌面开发.企业级应用开发.嵌入式开发等.所以学好Java,无疑多了一把通往成功大门的钥匙.下面小编给大家说说java前端开 ...

  8. Brackets前端开发IDE工具

    Brackets是一个开源的前端开发IDE工具,网页设计师和前端开发人员必备的前端开发IDE工具. 它能够使你在开发WEB网站实时预览你的网页,目前版本只适用于Chrome浏览器可以实时预览效果 支持 ...

  9. 前端打包工具webpack和Vite

    我们见证了 webpack.Rollup 和 Parcel 等工具的变迁,它们极大地改善了前端开发者的开发体验. 但当我们开始构建越来越大型的应用时,通常需要很长时间才能启动开发服务器,文件修改后的效 ...

最新文章

  1. 开源的Blink和Spark3.0,谁将称霸大数据领域?
  2. java 页面 分离 实现_JavaBean实现JSP页面和代码分离
  3. 杂谈:《宫锁心玉》的穿越硬伤
  4. matlab 常用命令
  5. 重拾面向对象软件设计
  6. matlab转换成vc,如何将matlab65函数转换成vc++60动态链接库.doc
  7. LQ训练营(C++)学习笔记_广度优先搜索
  8. 数据可视化【十】绘制地图
  9. [css] scroll-snap-align属性的应用场景是什么?
  10. linux system函数传参,Linux系统调用例程system_call和参数传递
  11. android 跨应用,Android跨应用获取资源
  12. 盘点云计算领域不可不读的9本书
  13. 18.go 日志监控系统
  14. 【大话设计模式】第0章 面向对象基础
  15. gdb reading symbols xxxx 段错误
  16. 如何使用Matlab合并Excel表格
  17. Css+Jquery实现点击图片放大缩小预览 图片预览 查看大图
  18. java全套学习课程
  19. NodeJS v0 10 8升级安装
  20. sync.Map详解

热门文章

  1. c语言里面的float是什么意思
  2. stm32f103VCT6全新机器 做stm32开发板 原理图以及主要器件规格书
  3. js 天花板 playcanvas
  4. Java分页查询详解
  5. Camstar 元数据mdb辅助工具
  6. 微信小程序轮播图的实现
  7. weblogic10 下载
  8. 非暴力沟通简易思维导图
  9. 【QGIS入门实战精品教程】4.8:QGIS如何下载SRTM数字高程模型DEM?
  10. 3Dmax制作立体的文字教程