当前位置: 首页 > news >正文

webpack-01

背景:

       Javascript工程项目越来越大,如果采用原来在使用<script>标签引入的js文件,会非常的麻烦。于是js工程师开始考虑使用模块的概念,编写各个模块通过打包工具(webpack,vite等)将这些模块进行组装。Webpack就是其中一个很出色的模块打包工具。

使用:

       1、初始化项目 npm init,会生成一个package.json文件,其中的内容相当于npm的说明书,记录项目名称 版本和仓库。

      2、npm安装 webpack 和webpack-cli

       webpack 是webpack核心,webpack-cli 是webpack的命令行工具,装了它就可以使用npx 命令了。

       3、webpack命令打包命令,和简化方法

npx webpack --entry = ./index.js --mode=’development’

       --entry指定打包其实模块,告诉webpack从这个文件开始组合模块

      --mode 告诉webpack是开发环境打包还是生产环境打包。此外还有生产环境关键字 production

       简化:每次打包如果都输入上面那么长的命令,会很麻烦,那么可以使用scritps脚本来简化命令。 在webpack.json中添加一个

'scripts':{"build":"webpack --entry=./index.js --mode='development'"
}

此时就可以使用 npm run build 代替之前一长串的命令

4.webpack.config.js文件(webpack配置文件)

        为什么叫webpack的配置文件?因为一个项目webpack的配置项可能会有很多,如果还在webpack.json中的命令中添加参数,后续会非常难以维护。因为webpack.config.js配置文件就应运而生,我们可以将命令行参数在这个文件中维护。

module.exports={entry:'./src/index.js',output:{filename:'main.js' // 输出文件名},mode:"development" // 
}

 此时webpack.json文件中命令行可以改为 

'scripts':{"build":"webpack"
}

注:webpack打包默认入口文件为 scr/index.js,打包后的文件路径为 dist目录

此时运行,npm run build
 5、webpack-dev-server简化开发时的打包工作。

        在此之前没完成一个或者一段代码编写,调试前都得调用执行一次npm run build 这样挺繁琐。为了解决这个问题,社区提供了webpack-dev-server,在开发阶段开发者不用打包就能调试自己代码。

在webpack.json中配置命令

"scripts":{"build":"webpack","dev":"webpack-dev-server"}

还需要再webpack.config.js中配置开发服务

module.exports={entry:'./src/index.js',output:{filename:'main.js' // 输出文件名},mode:"development", // devServer:{publicPath:'/dist' // 开发者服务器会从dist中拿资源}
}

webpack-dev-server 打包存在于内存中。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java 面试题:事务隔离级别以及并行事务会出现什么问题怎么解决脏读、不可重复读和幻读问题 --xunznux
  • python3兼容python2吗
  • js中数组的定义及使用
  • HBase 源码阅读(二)
  • java 根据给定的子网掩码和网关计算起始IP和结束IP
  • 网络层 III(划分子网和构造超网)【★★★★★★】
  • Spring 事务传播和自调用行为
  • python打包 exe 提示no module named flask
  • 【记忆回溯】【深度搜索】【动态规划】【字符串】【力扣】单词拆分
  • pandas操作Excel文件
  • react vant 在使用dialog.confirm取消报错 Uncaught (in promise) undefined
  • jQuery入门(七)jQuery实现按钮分页
  • 关于VUE3开发频繁引入ref,reactive,computed等基础函数。
  • c++ 标准模板库 STL
  • 运维问题0001:MM模块-MIGO收货报错“消息号 M7036 对于采购订单********无收货可能”
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • css系列之关于字体的事
  • Hibernate【inverse和cascade属性】知识要点
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • Java方法详解
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • php的插入排序,通过双层for循环
  • SwizzleMethod 黑魔法
  • vue自定义指令实现v-tap插件
  • 大快搜索数据爬虫技术实例安装教学篇
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 判断客户端类型,Android,iOS,PC
  • 小程序 setData 学问多
  • 怎样选择前端框架
  • 追踪解析 FutureTask 源码
  • media数据库操作,可以进行增删改查,实现回收站,隐私照片功能 SharedPreferences存储地址:
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 如何在招聘中考核.NET架构师
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • #window11设置系统变量#
  • #微信小程序(布局、渲染层基础知识)
  • #知识分享#笔记#学习方法
  • $.proxy和$.extend
  • (145)光线追踪距离场柔和阴影
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (NSDate) 时间 (time )比较
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (二刷)代码随想录第15天|层序遍历 226.翻转二叉树 101.对称二叉树2
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (过滤器)Filter和(监听器)listener
  • (简单) HDU 2612 Find a way,BFS。
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)c++ std::pair 与 std::make
  • (转)Unity3DUnity3D在android下调试
  • (转载)hibernate缓存
  • (转载)利用webkit抓取动态网页和链接