webpack打包去掉js,css文件后的hash字符串

本文介绍如何在Webpack配置中移除生成文件名中的hash值,从而实现加载固定名称的JS和CSS文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

webpack打包后的js,css文件通常带有hash字符串,这样做的好处是防止浏览器缓存。但是如果我们想要一个固定的html,加载的js,css名称不带后缀,怎么做呢?

  • 打开build下面的webpack.prod.conf.js
output: {
    path: config.build.assetsRoot,
    filename: utils.assetsPath('js/[name].[chunkhash].js'),
    chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')
  },
output: {
    path: config.build.assetsRoot,
    filename: utils.assetsPath('js/[name].js'),
    chunkFilename: utils.assetsPath('js/[id].js')
  },
### 使用 Webpack 进行打包文件上传功能配置 Webpack 是一种模块化打包工具,能够帮助开发者高效地管理前端资源并将其打包成可部署的形式。以下是关于如何使用 Webpack 进行打包以及处理文件上传的相关说明。 #### 一、Webpack 打包基础 Webpack 的核心功能是对 JavaScript 和其他静态资源(如 CSS、图片等)进行打包。通过安装必要的依赖项和编写配置文件 `webpack.config.js`,可以实现对项目的自动化构建过程[^1]。 ```bash npm install webpack webpack-cli --save-dev ``` 上述命令用于全局或本地安装 Webpack 及其 CLI 工具。完成安装后,可以通过创建一个简单的配置文件来定义打包规则: ```javascript // webpack.config.js const path = require('path'); module.exports = { entry: './src/index.js', // 入口文件路径 output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') // 输出目录 }, module: { rules: [ { test: /\.css$/, // 匹配 .css 文件 use: ['style-loader', 'css-loader'] } ] } }; ``` 此配置展示了如何加载 `.css` 文件,并利用 `style-loader` 将样式注入到 DOM 中[^2]。 --- #### 二、Webpack 处理文件上传 对于文件上传的需求,通常涉及将用户提交的文件转换为 Base64 编码字符串或其他形式的数据流以便于传输至服务器端。虽然 Webpack 主要专注于前端资源的打包工作,但它也可以借助插件支持文件类型的解析与优化。 ##### 1. 图片和其他媒体文件的处理 为了使 Webpack 能够识别并打包图片、字体图标等非脚本类资产,需引入相应的 Loader 插件。例如: - **file-loader**: 把文件复制到输出目录下; - **url-loader**: 类似 file-loader,但当文件小于指定大小时会自动转化为 inline base64 URL; 安装这些插件的方法如下所示: ```bash npm install file-loader url-loader --save-dev ``` 接着更新 `webpack.config.js` 来应用它们: ```javascript module.exports = { ... module: { rules: [ { test: /\.(png|jpe?g|gif)$/i, type: 'asset/resource' // 自动选择合适的 loader (推荐方式) }, { test: /\.(woff|woff2|eot|ttf|otf)$/i, use: [ { loader: 'file-loader', options: { name: '[name].[hash].[ext]', outputPath: 'fonts/' } } ] } ] } }; ``` 此处设置了针对不同扩展名的匹配规则,确保各类资源被正确处理。 ##### 2. Gzip 压缩后的文件分发 如果希望进一步提升性能,则可以在生产环境中启用 Gzip 压缩技术。这不仅减少了网络带宽消耗还加快了页面加载速度。下面是一个基于 Nginx 实现的例子[^3]: ```nginx location /h5/ { gzip on; gzip_static on; gzip_http_version 1.1; gzip_proxied any; gzip_min_length 1k; gzip_buffers 4 8k; gzip_comp_level 6; gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/svg+xml; } ``` 注意这里启用了两个重要参数——`gzip_static` 表明如果有预生成好的 *.gz 版本则直接提供给客户端而不是实时压缩。 --- #### 三、Vue3 下的 Webpack 配置优化 在 Vue3 应用程序中调整 Webpack 设置同样非常重要。比如关闭无用的地图文件以减少最终产物体积就是一个典型例子[^4]: ```javascript // vue.config.js module.exports = { productionSourceMap: false, configureWebpack: { optimization: { splitChunks: { chunks: 'all' } } } }; ``` 以上代码片段禁用了源映射的同时也开启了代码分割策略从而改善用户体验。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值