uni-app 打包h5 输出js文件带有特殊字符“~”

842 阅读1分钟

uni-app 打包h5 输出的js文件带有特殊字符“~”

uni-app 打包h5输出的js文件带有特殊字符“”, 导致在页面请求对应带有特殊连接符的文件时候被网关拦截报405错误。 图中可以看出打包之后,文件直接的公共部分默认是通过 “” 进行连接的。当你把工程发布到对应环境的时候,会发现对应的js 请求,被网关拦截,因为有特殊字符“~”

解决办法: 修改webpack的打包,把对应的配置进行修改。

  • 在对应的uni-app 工程的根文件处,新建一个vue.config.js
  • 配置内容上可以配置 automaticNameDelimiter: "_", 默认是“~“
  • 也可以把name 设置为false(这样默认就走chunk_xxx 的名称了) 整个配置如下
module.exports = {
filenameHashing: true, // 文件hash
chainWebpack: (config) => {
  // 发行或运行时启用了压缩时会生效
  config.optimization.minimizer("terser").tap((args) => {
    const compress = args[0].terserOptions.compress;
    // 非 App 平台移除 console 代码(包含所有 console 方法,如 log,debug,info...)
    compress.drop_console = true;
    return args;
  });
  config.optimization.splitChunks({
    automaticNameDelimiter: "_",
    name: false,
  });
},
};

相关参数说明关注name 与 automaticNameDelimiter 两个