uni-app h5打包后的目录缺少uni_modules目录

发布于 1周前 作者 nodeper 来自 Uni-App

uni-app h5打包后的目录缺少uni_modules目录

操作步骤:

  • 正常h5打包,发行网站PC-web端

预期结果:

  • 希望打包后的目录有uni_modules

实际结果:

  • 现在打包后的目录没有uni_modules

bug描述:

  • 使用的是最新的HBuilder版本4.29,打包后的目录缺少uni_modules目录,
  • 在其他电脑上面打包可以,HBuilder重新安装了好几遍也不行,不知道是哪里的问题,也没有错误日志的输出
  • 之前的版本是正常可以打包的,更新完4.28之后就缺少这个目录
信息类别 信息内容
产品分类 uniapp/H5
PC开发环境 Windows
PC开发环境版本 win10
HBuilderX类型 正式
HBuilderX版本 4.29
浏览器平台 Edge
浏览器版本 127.0.2651.98 (正式版本) (64 位)
项目创建方式 HBuilderX

alt text alt text


2 回复

你的uni_modules目录有什么?只有uni_modules插件里的static目录才会copy到输出目录,可以提交一个测试工程说明。


在使用uni-app进行H5打包时,如果发现打包后的目录中缺少uni_modules目录,这通常是因为uni-app的打包配置或项目结构设置不当。uni_modules目录主要用于存放通过npm安装的依赖模块,确保在项目中可以正确引用这些模块。

以下是一些可能的解决方案和代码示例,用于确保uni_modules目录在打包后仍然存在:

1. 检查manifest.json配置

首先,确保manifest.json文件中的h5配置部分正确设置了es6转译和node_modules的处理。

{
  "mp-weixin": {},
  "h5": {
    "devServer": {
      "https": false,
      "port": 8080,
      "proxy": {},
      "path": "/"
    },
    "router": {
      "mode": "history",
      "base": "/"
    },
    "es6": true, // 确保开启ES6转译
    "static": {
      "path": "static", // 静态资源路径
      "preload": {}
    },
    "template": {
      "name": "index",
      "auto": true
    },
    "dev": {
      // 其他开发配置...
    },
    "build": {
      // 确保没有排除node_modules
      "exclude": []
    }
  }
}

2. 确保vue.config.js配置正确

如果你使用了Vue CLI插件进行uni-app开发,vue.config.js中的配置也至关重要。确保没有配置错误导致node_modules被排除。

module.exports = {
  configureWebpack: {
    // 确保没有配置导致node_modules被排除
    externals: {},
    resolve: {
      alias: {
        '@': path.resolve(__dirname, 'src')
      }
    }
  },
  chainWebpack: config => {
    // 自定义webpack配置
    config.resolve.symlinks(true); // 确保可以解析符号链接
  }
};

3. 使用npm run build:h5进行打包

确保你使用正确的命令进行打包,通常是npm run build:h5,这个命令会在package.json的scripts部分定义。

{
  "scripts": {
    "dev:mp-weixin": "cross-env NODE_ENV=development uni-app-cli serve -p 8080 --mp-weixin",
    "build:mp-weixin": "cross-env NODE_ENV=production uni-app-cli build --mp-weixin",
    "dev:h5": "npm run dev:%PLATFORM% -- --platform h5",
    "build:h5": "cross-env NODE_ENV=production uni-app-cli build --h5"
  }
}

通过上述配置和步骤,你应该能够确保在H5打包后的目录中包含uni_modules目录。如果问题依旧存在,建议检查是否有其他配置或代码影响了打包过程,或者查阅uni-app官方文档和社区寻求更具体的帮助。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!