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

vue2项目,为什么开发环境打包出来的js文件名是1.js 2.js,而生产环境打包出来的是chunk-3adddd.djncjdhcbhdc.js

Vue2项目开发环境与生产环境JS文件名差异的核心原理及配置逻辑如下:
一、文件名差异的底层机制
1‌、Webpack默认命名策略‌
开发环境默认禁用哈希,采用[id].js命名规则(如1.js),生产环境启用[chunkhash]生成chunk-xxx.[hash].js格式,实现内容级缓存优化
‌2、环境模式驱动配置‌
Vue CLI通过NODE_ENV环境变量:
开发环境(development):自动禁用filenameHashing,简化构建流程
生产环境(production):强制启用[chunkhash],生成哈希文件名
‌3、开发环境优化逻辑‌
禁用哈希可避免每次修改文件后重新计算哈希值,提升热更新速度(HMR效率提升30%+)
二、关键配置项解析
在vue.config.js中控制文件名策略:

// 文件名策略配置示例
module.exports = {// 全局哈希开关(生产环境默认true)filenameHashing: process.env.NODE_ENV === 'production',configureWebpack: {output: {// 开发环境命名规则filename: '[name].js',chunkFilename: '[id].js', // 生产环境命名规则(需与filenameHashing联用)production: {filename: '[name].[chunkhash:8].js',chunkFilename: 'chunk-[id].[chunkhash:8].js'}}}
}

此配置将导致:

开发环境生成1.js等连续ID文件
生产环境生成chunk-3adddd.djncjdhdc.js类哈希文件
三、统一命名策略方案
方案1:强制开发环境启用哈希

// vue.config.js
module.exports = {filenameHashing: true, // 覆盖环境检测configureWebpack: {output: {filename: 'js/[name].[hash].js',chunkFilename: 'js/chunk-[name].[hash].js'}}
}

该配置使所有环境都生成带哈希的文件名(如chunk-vendors.3adddd.js
方案2:动态环境适配

module.exports = {configureWebpack: {output: {filename: process.env.NODE_ENV === 'production' ? 'js/[name].[chunkhash].js' : 'js/[id].js',chunkFilename: process.env.NODE_ENV === 'production' ? 'js/chunk-[name].[chunkhash].js' : 'js/[id].js'}}
}

此方案保留开发环境的ID命名规则,生产环境启用哈希策略

http://www.xdnf.cn/news/124561.html

相关文章:

  • Java面试高频问题(21-25)
  • Linux GPIO驱动开发实战:Poll与异步通知双机制详解
  • 解决VS Code中Vue项目不识别`@/`的可能解决方案及总结
  • 高性能服务器配置经验指南2——深度学习准备(驱动安装,Anaconda安装,不同版本Cuda安装)
  • 什么是 低秩矩阵(Low-Rank)
  • 蓝桥杯 20. 压缩变换
  • 数据库监控 | MongoDB监控全解析
  • 算法之分支定界
  • 【含文档+PPT+源码】基于SpringBoot的开放实验管理平台设计与实现
  • Spring Boot中自定义404异常处理问题学习笔记
  • redis集群的三种部署方式
  • JS 应用算法逆向三重断点调试调用堆栈BP 插件发包安全结合
  • 【C语言】C语言中的联合体与枚举类型
  • 生物创新药研发为何要上电子实验记录本?
  • ​[Android] 共生地球 v1.1.19 国产卫星地图 ​
  • 深度学习 backbone,neck,head网络关键组成
  • 记录学习的第三十一天
  • ​Janus Pro
  • 如何实现Spring Boot应用程序的安全性:全面指南
  • CV和NLP领域常见模型列表
  • 【蓝桥杯】产值调整
  • 【农气项目】基于关键因子的产量预报
  • Unity InputSystem触摸屏问题
  • JavaScript 的“积木”:函数入门与实践
  • 【Python爬虫基础篇】--4.Selenium入门详细教程
  • 重载和重写的区分
  • JavaScript中的this到底是什么
  • 机器学习--线性回归模型
  • express查看文件上传报文,处理文件上传,以及formidable包的使用
  • NestJS——使用TypeORM操作数据库、增删改查、关联查询、QueryBuilder