NervJS / taro

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

Taro v3.4.0 安装模块时报错,导致无法编译预览小程序。 #11100

Open theores opened 2 years ago

theores commented 2 years ago

相关平台

微信小程序

复现仓库

https://github.com/liujianchao1995/error-recurrence-demo/tree/master 小程序基础库: 2.21.3 使用框架: Vue 3

复现步骤

$ yran install $ yarn dev:weapp

期望结果

安装、编译成功并可预览

实际结果

一、yarn install后。出现大量警告信息。

PS D:\Development\test\taro-test\project-test> yarn install       
yarn install v1.22.17
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning "@tarojs/mini-runner > @tarojs/react > react-reconciler@0.26.1" has unmet peer dependency "react@^17.0.1".
warning "@tarojs/mini-runner > babel-preset-taro > @tarojs/taro-rn@3.4.0" has unmet peer dependency "@react-native-async-storage/async-storage@~1.15.11".
warning "@tarojs/mini-runner > babel-preset-taro > @tarojs/taro-rn@3.4.0" has unmet peer dependency "@react-native-community/cameraroll@~4.1.2".
warning "@tarojs/mini-runner > babel-preset-taro > @tarojs/taro-rn@3.4.0" has unmet peer dependency "@react-native-community/clipboard@~1.5.1".
warning "@tarojs/mini-runner > babel-preset-taro > @tarojs/taro-rn@3.4.0" has unmet peer dependency "@react-native-community/geolocation@~2.0.2".
warning "@tarojs/mini-runner > babel-preset-taro > @tarojs/taro-rn@3.4.0" has unmet peer dependency "@react-native-community/netinfo@~7.1.2".
warning "@tarojs/mini-runner > babel-preset-taro > @tarojs/taro-rn@3.4.0" has unmet peer dependency "expo-av@~9.2.3"...

二、很多模块并没有被成功安装,继续执行 yarn dev:weapp后,提示'缺少npm包@tarojs/mini-runner,开始安装...',然后出现与上面相同的警告,最后报错:

PS D:\Development\test\taro-test\project-test> yarn dev:weapp     
yarn run v1.22.17
$ npm run build:weapp -- --watch

> project-test@1.0.0 build:weapp
> taro build --type weapp "--watch"

👽 Taro v3.4.0

启动  开发者工具-项目目录  D:\Development\test\taro-test\project-test\dist
生成  工具配置  D:\Development\test\taro-test\project-test\dist/project.config.json
缺少npm包@tarojs/mini-runner,开始安装...
warning "@tarojs/webpack-runner > @tarojs/plugin-framework-react > @prefresh/webpack@3.3.2" has unmet peer dependency "@prefresh/babel-plugin@^0.4.0".
warning "@tarojs/webpack-runner > @tarojs/plugin-framework-react > @prefresh/webpack@3.3.2" has unmet peer dependency "preact@^10.4.0".

....

node:internal/modules/cjs/loader:933
  const err = new Error(message);
              ^

Error: Cannot find module 'autoprefixer'
Require stack:
- D:\Development\test\taro-test\project-test\node_modules\@tarojs\mini-runner\dist\webpack\postcss.conf.js
...
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
    at Function.Module._load (node:internal/modules/cjs/loader:778:27)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:102:18)
...
    at Module._compile (D:\Application\nvm\v16.13.1\node_modules\@tarojs\cli\node_modules\pirates\lib\index.js:136:24) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    'D:\\Development\\test\\taro-test\\project-test\\node_modules\\@tarojs\\mini-runner\\dist\\webpack\\postcss.conf.js',
...
  ]
}
error Command failed with exit code 1.

环境信息

  Taro CLI 3.4.0 environment info:
    System:
      OS: Windows 10
    Binaries:
      Node: 16.13.1 - C:\Program Files\nodejs\node.EXE
      Yarn: 1.22.17 - C:\Program Files\nodejs\yarn.CMD
      npm: 8.1.2 - C:\Program Files\nodejs\npm.CMD

补充信息

使用的是tarojs/cli@3.4.0默认提供的vue3 vuex模板,使用nutui3.0模板同样报错。

Chen-jj commented 2 years ago

初始模板就报错么?

theores commented 2 years ago

初始模板就报错么?

用cli创建的时候会自动安装好依赖,这个时候不报错。但是一旦开发过程中需要安装新的模块,或者重新install任何依赖的时候,就会报错。

baqihg commented 2 years ago

同样有这个问题,不过是在微信开发者工具里的终端 yarn 才会有这个问题。@Chen-jj @liujianchao1995

theores commented 2 years ago

同样有这个问题,不过是在微信开发者工具里的终端 yarn 才会有这个问题。@Chen-jj @liujianchao1995

我的无论是在系统的PowerShell还是微信终端,无论是npm还是yarn,都会报这样的错,并且最终导致无法编译预览。

TheKonka commented 2 years ago

我也出现了这个问题。不知道为什么,原来好好的,我把 旧的库 升级重新安装就 寄了

Chen-jj commented 2 years ago

试了三种做法,都没有复现:

  1. 下载楼主的项目、yarntaro build 成功、yarn add webpack-bundle-analyzertaro build 成功。
  2. 下载楼主的项目、删除 yarn.lockyarntaro build 成功、yarn add webpack-bundle-analyzertaro build 成功。
  3. 创建 vue3-vuex 项目、自动安装依赖、taro build 成功、yarn add webpack-bundle-analyzertaro build 成功。

环境:

Windows 环境则没有测过,@liujianchao1995 @baqihg @konka-king 各位都是 Windows 下报错?

theores commented 2 years ago

@Chen-jj 对,是windows。

TheKonka commented 2 years ago

试了三种做法,都没有复现:

  1. 下载楼主的项目、yarntaro build 成功、yarn add webpack-bundle-analyzertaro build 成功。
  2. 下载楼主的项目、删除 yarn.lockyarntaro build 成功、yarn add webpack-bundle-analyzertaro build 成功。
  3. 创建 vue3-vuex 项目、自动安装依赖、taro build 成功、yarn add webpack-bundle-analyzertaro build 成功。

环境:

Windows 环境则没有测过,@liujianchao1995 @baqihg @konka-king 各位都是 Windows 下报错?

我是mac 环境,是手动 删除package.json 中依赖,重新安装出现的

Littly commented 2 years ago

windows 环境,没有复现

WechatIMG4

👽 Taro v3.4.0

  Taro CLI 3.4.0 environment info:
    System:
      OS: Windows 10
    Binaries:
      Node: 16.13.2 - C:\Users\****\AppData\Local\Temp\yarn--1642993326956-0.9630130202038345\node.CMD
      Yarn: 1.22.15 - C:\Users\****\AppData\Local\Temp\yarn--1642993326956-0.9630130202038345\yarn.CMD
      npm: 8.1.2 - C:\Program Files\nodejs\npm.CMD

Done in 4.69s.
aoarashi1988 commented 2 years ago

遇到相同的问题,已经解决

原因可能出在使用包管理器(npm、yarn或者别的)之前,设置了变量NODE_ENV=production

这会导致所有devDependencies里的依赖都不会被安装

edwards19900128 commented 1 year ago

遇到相同的问题,已经解决

原因可能出在使用包管理器(npm、yarn或者别的)之前,设置了变量NODE_ENV=production

这会导致所有devDependencies里的依赖都不会被安装 请问一下,这个是如何解决的,我都把node和npm、yarn重新删除过了