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

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 打包存在于内存中。


http://www.kler.cn/news/288422.html

相关文章:

  • 【HarmonyOS 4.0】网络请求 - axios
  • Spring Boot实现发QQ邮件
  • Windows环境Chrome安装提示无可用更新问题解决【2024年版】
  • 【2024-2025源码+文档+调试讲解】微信小程序的城市公交查询系统
  • 前端js—实现字符串拼接
  • 驱动和固件的区别 — 简单介绍
  • 美国海外仓可以用哪家海外仓系统好?
  • JDS汽车检测主要内容
  • 科研论文必须要了解的25个学术网址
  • 2024数博会技术成果回顾 | KPaaS助力企业数智化转型
  • STM32——Flash闪存
  • 人脸表情识别/情绪识别的参考参数及相关开源产品汇总
  • LLM大模型教程:低使用门槛开源大模型服务框架Ollama
  • 提升效率!ArcGIS中创建脚本工具
  • 压缩大型语言模型 LLMs
  • 智能提醒助理系列-Nginx搭建
  • MySQL高级课程:索引设计与性能优化的最佳实践
  • 为初学者简单易懂地讲解Transformer的基础知识是什么?
  • vue,小程序,uni-app的生命周期
  • 【HarmonyOS 4.0】鸿蒙应用模型
  • [Algorithm][综合训练][kotori和n皇后][取金币][矩阵转置]详细讲解
  • 【JavaEE初阶】HTTP请求(Request)
  • 某付宝又火了!什么样的人能够申请网商贷?个人也能申请吗?
  • Java基于微信小程序的超市购物管理系统
  • golang中return和defer的执行顺序的一道题
  • 华为与联发科的专利博弈:技术较量还是市场重塑?
  • 【区块链 + 物联网】斐得坊智慧停车区块链 | FISCO BCOS应用案例
  • 【教程】2024.09.03 Qlib数据加载器以及数据集加载器 Alpha158 Aplha360详细的讲解,以及源码
  • JAVAEE初阶第二节——多线程基础(上)
  • golang关于slice map函数传参的小问题