学会用Webpack搭建开发环境并打包代码

这篇具有很好参考价值的文章主要介绍了学会用Webpack搭建开发环境并打包代码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹)

webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js

目录

搭建开发环境

打包模式

打包模式的应用  

前端-注入环境变量

DefinePlugin 

Usage 

开发环境调错 - source map

解析别名 alias

优化-CDN使用 

多页面打包 

优化-分割公共代码 


搭建开发环境

问题:之前改代码,需重新打包才能运行查看,效率很低
开发环境: 配置 webpack-dev-server 快速开发应用程序
作用:启动 Web 服务, 自动 检测代码变化, 热更新 到网页
注意:dist 目录和打包内容是在内存里(更新快)
步骤:
1. 下载 webpack-dev-server 软件包到当前项目 webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js
2. 设置模式 开发模式 ,并配置 自定义命令 webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js
webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js
3. 使用 npm run dev 来启动开发服务器,试试热更新效果

打包模式

打包模式告知 Webpack 使用相应模式的内置优化

分类: webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js

设置:
方式1:在 webpack.config.js 配置文件设置 mode 选项  webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js
方式2:在 package.json 命令行设置 mode 参数 webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js
注意:命令行设置的优先级高于配置文件中的,推荐用命令行设置

打包模式的应用  

需求:在开发模式下用 style-loader 内嵌更快,在生产模式下提取 css 代码
方案1: webpack.config.js 配置导出函数,但是局限性大(只接受 2 种模式)
方案2:借助 cross-env (跨平台通用)包命令,设置参数区分环境
步骤:
1. 下载 cross-env 软件包到当前项目 webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js
2. 配置 自定义命令,传入参数名和值(会绑定到 process.env 对象下) webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js
3. 在 webpack.config.js 区分不同环境 使用 不同配置
4. 重新打包观察两种配置区别
方案3: 配置不同的 webpack.config.js (适用多种模式差异性较大情况)

前端-注入环境变量

需求: 前端 项目中,开发模式下打印语句生效,生产模式下打印语句失效
问题:cross-env 设置的只在 Node.js 环境生效,前端代码无法访process.env.NODE_ENV
解决 :使用 Webpack 内置的 DefinePlugin 插件
作用:在编译时,将前端代码中匹配的变量名,替换为值或表达式

DefinePlugin 

DefinePlugin 允许在 编译时 将你代码中的变量替换为其他值或表达式。这在需要根据开发模式与生产模式进行不同的操作时,非常有用。例如,如果想在开发构建中进行日志记录,而不在生产构建中进行,就可以定义一个全局常量去判断是否记录日志。这就是 DefinePlugin 的发光之处,设置好它,就可以忘掉开发环境和生产环境的构建规则。

new webpack.DefinePlugin({
  // 定义...
});

Usage 

传递给 DefinePlugin 的每个键都是一个标识符或多个以 . 连接的标识符。

  • 如果该值为字符串,它将被作为代码片段来使用。
  • 如果该值不是字符串,则将被转换成字符串(包括函数方法)。
  • 如果值是一个对象,则它所有的键将使用相同方法定义。
  • 如果键添加 typeof 作为前缀,它会被定义为 typeof 调用。

这些值将内联到代码中,从而允许通过代码压缩来删除冗余的条件判断

new webpack.DefinePlugin({
  PRODUCTION: JSON.stringify(true),
  VERSION: JSON.stringify('5fa3b9'),
  BROWSER_SUPPORTS_HTML5: true,
  TWO: '1+1',
  'typeof window': JSON.stringify('object'),
  'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
});

开发环境调错 - source map

问题:代码被压缩和混淆,无法正确定位源代码位置(行数和列数)
source map: 可以准确追踪 error 和 warning 在原始代码的位置
设置:webpack.config.js 配置 devtool 选项
inline-source-map 选项:把源码的位置信息一起打包在 js 文件内 webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js
注意:source map 仅适用于开发环境,不要在生产环境使用(防止被 轻易 查看源码位置)

解析别名 alias

解析别名: 配置模块如何解析,创建 import 引入路径的别名,来确保模块引入变得更简单
例如:原来路径如图,比较长而且相对路径不安全
解决:在 webpack.config.js 中配置解析别名 @ 来代表 src 绝对路径 webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js

优化-CDN使用 

webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js
CDN定义 :内容分发网络,指的是一组分布在各个地区的服务器
作用:把静态资源文件/第三方库放在 CDN 网络中各个服务器中,供用户就近请求获取
好处:减轻自己服务器请求压力,就近请求物理延迟低,配套缓存策略

 webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js文章来源地址https://www.toymoban.com/news/detail-646228.html

步骤:
1. 在 html 中引入第三方库的 CDN 地址 并用模板语法判断 webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js
2. 配置 webpack.config.js 中 externals 外部扩展选项(防止某些 import 的包被打包) webpack 打包代码,# 前端Webpack入门,前端,webpack,node.jswebpack 打包代码,# 前端Webpack入门,前端,webpack,node.js
3. 两种模式下打包观察效果

多页面打包 

单页面 单个 html 文件,切换 DOM 的方式实现不同业务逻辑展示,后续 Vue/React 会学到
多页面: 多个 html 文件,切换页面实现不同业务逻辑展示
需求:把黑马头条-数据管理平台-内容页面一起引入打包使用
步骤:
1. 准备 源码 (html,css,js)放入相应位置,并改用模块化语法 导出
2. 下载 form-serialize 包并 导入 到核心代码中使用
3. 配置 webpack.config.js 多入口 多页面 的设置
4. 重新打包观察效果 webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js

优化-分割公共代码 

需求:把 2 个以上页面引用的公共代码提取
步骤:
1. 配置 webpack.config.js 的 splitChunks 分割功能
2. 打包 观察效果 webpack 打包代码,# 前端Webpack入门,前端,webpack,node.js

到了这里,关于学会用Webpack搭建开发环境并打包代码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【前端】webpack打包去除console.log

    需要在打包的时候,自动地去除掉所有console.log 也可以用 if(process.env.NODE_ENV === \\\'production\\\'){} 之类的条件判断包起来,打包的时候生产环境自动去掉console.log测试环境保留

    2024年02月09日
    浏览(29)
  • webpack打包时配置环境变量

    使用webpack.DefinePlugin插件来定义全局常量 1. 使用webpack.DefinePlugin定义全局常量 在webpack配置文件中(例如 webpack.config.js)中 这里,我们设置了一个环境变量YOUR_ENV_VAR,并为其赋了一个值your_value。 2. 在Vue静态页面中使用该环境变量 在a.html页面中,你可以通过以下方式访问这个

    2024年02月06日
    浏览(27)
  • 前端Vue项目webpack打包部署后源码泄露解决

    前端项目使用nuxt框架(基于Vue),采用Webpack打包,部署到服务器后,进行漏洞检测。 经Webpack打包部署到服务器后,访问并打开开发者模式,在Source下出现[name]路径,内部包含(webpack)buildin文件夹。(做漏洞分析时,会认为该内容涉及源码泄露) 1.首先考虑源码泄露的问题 打

    2024年02月03日
    浏览(77)
  • 用webpack做一些前端打包时的性能优化

    一.webpack 的五个核心概念 1.Entry:入口指示,webpack以哪个文件为入口起点开始打包,分析构建内部依赖图 2.output:输出指示,webpack打包后的资源bundles输出到哪里去,以及如何命名 3.loader :loader让webpack能够去处翻译理那些非js文件(img css…) 4.Plugins :Plugins插件可以用于执行范围

    2024年02月12日
    浏览(36)
  • 【python】webpack是什么,如何逆向出webpack打包的js代码?

    ✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN新星创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开

    2024年03月25日
    浏览(51)
  • 【前端笔记】前端包管理工具和构建打包工具介绍之npm、yarn、webpack、vite

    NPM(Node Package Manager)是node包管理器,是node.js默认采用的软件包管理系统,使用JavaScript语言编写。包管理可以理解为依赖管理,有一个npm包管理仓库,当我们执行npm命令的时候,就可以直接从npm仓库中下载对应的依赖包,类似于后端开发中的POM。 node.js中就已经安装了NPM,所

    2024年02月02日
    浏览(27)
  • 使用Webpack进行模块化开发与打包

    Webpack是一个现代化的JavaScript模块打包工具,它可以将多个模块打包成一个或多个静态资源文件。通过Webpack,我们可以将项目中的各个模块进行模块化开发,并将它们打包成一个或多个可供浏览器加载的静态资源文件。 使用Webpack进行模块化开发与打包有以下几个优势: 2.1

    2024年02月12日
    浏览(58)
  • vue组件库开发,webpack打包,发布npm

    做一个像elment-ui一样的vue组件库 那多好啊!这是我前几年就想做的 但webpack真的太难用,也许是我功力不够 今天看到一个视频,早上6-13点,终于实现了,呜呜 感谢视频的分享-来龙去脉-大家可以看这个视频:https://www.bilibili.com/video/BV1Zf4y1u75o?p=9vd_source=125d808bbbad2b8400f221b816a0

    2024年02月09日
    浏览(30)
  • 细说前端打包发布后,浏览器缓存如何清理?其实只需要简单的webpack配置就行

    有没有这么一种场景,项目上线后,客户使用过程中发现了bug,你急急忙忙改完,发布。但你发布后 测试人员或者客户会说:“你这改了没用啊”。 你:“清下缓存试试” 客户:“????” 那么这篇文章带你认识浏览器缓存,及清除浏览器的缓存办法。让你不再为了缓存

    2024年02月09日
    浏览(44)
  • vue中webpack配置compression-webpack-plugin打包压缩和优化,terser-webpack-plugin在构建过程中对 JavaScript 代码进行压缩和优化

    参考地址:https://v4.webpack.js.org/plugins/compression-webpack-plugin/ 一、compression-webpack-plugin的使用,安装插件 二、在 webpack 配置中,require 或 import 引入 三、配置 参考地址:https://v4.webpack.js.org/plugins/terser-webpack-plugin/ 一、安装terser-webpack-plugin 二、在 Webpack 配置中引入 三、配置

    2024年04月14日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包