NervJS / taro

开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/
https://docs.taro.zone/
Other
35.46k stars 4.78k forks source link

h5 使用 webpack4 无法启动 #12631

Closed dingff closed 2 years ago

dingff commented 2 years ago

相关平台

H5

浏览器版本: chrome 105.0.5195.125 使用框架: React

复现步骤

使用官方demo,compiler 改为 webpack4,yarn dev:h5 即可复现

期望结果

正常启动

实际结果

ValidationError: Invalid configuration object. Webpack has been initialized using a configuration object that does not match the API schema.

环境信息


  Taro CLI 3.5.6 environment info:
    System:
      OS: macOS 12.6
      Shell: 5.8.1 - /bin/zsh
    Binaries:
      Node: 14.19.1 - /usr/local/bin/node
      Yarn: 1.22.19 - /usr/local/bin/yarn
      npm: 6.14.16 - /usr/local/bin/npm
    npmPackages:
      @tarojs/cli: 3.5.6 => 3.5.6 
      @tarojs/components: 3.5.6 => 3.5.6 
      @tarojs/helper: 3.5.6 => 3.5.6 
      @tarojs/mini-runner: ^3.5.6 => 3.5.6 
      @tarojs/plugin-framework-react: 3.5.6 => 3.5.6 
      @tarojs/plugin-platform-alipay: 3.5.6 => 3.5.6 
      @tarojs/plugin-platform-jd: 3.5.6 => 3.5.6 
      @tarojs/plugin-platform-qq: 3.5.6 => 3.5.6 
      @tarojs/plugin-platform-swan: 3.5.6 => 3.5.6 
      @tarojs/plugin-platform-tt: 3.5.6 => 3.5.6 
      @tarojs/plugin-platform-weapp: 3.5.6 => 3.5.6 
      @tarojs/react: 3.5.6 => 3.5.6 
      @tarojs/router: 3.5.6 => 3.5.6 
      @tarojs/runtime: 3.5.6 => 3.5.6 
      @tarojs/shared: 3.5.6 => 3.5.6 
      @tarojs/taro: 3.5.6 => 3.5.6 
      @tarojs/taro-h5: 3.5.6 => 3.5.6 
      @tarojs/webpack-runner: ^3.5.6 => 3.5.6 
      @tarojs/webpack5-runner: 3.5.6 => 3.5.6 
      babel-preset-taro: 3.5.6 => 3.5.6 
      eslint-config-taro: 3.5.6 => 3.5.6 
      react: ^18.0.0 => 18.2.0 
ZakaryCode commented 2 years ago

按照该步骤并不能复现问题,看错误应该是没有切换安装的 webpack 版本

dingff commented 2 years ago

https://github.com/dingff/taro3-test

dingff commented 2 years ago

模板创建的时候选择webpack5,然后compiler 改为 webpack4

dingff commented 2 years ago

手动安装 webpack4 的依赖可以解决,不过是否能实现切换 webpack 版本时自动更新依赖

ZakaryCode commented 2 years ago

该依赖由用户显示控制,自动切换并没有额外的收益,同时根据方案的不同会新增编译步骤延长编译时间,意义不大