Description
问题描述
taro-ui项目fork下来后pnpm start安装基础依赖后,运行packages/taro-ui-demo-rn下的dev:rn命令,使用taro-playground的1.8.2版本的taro app,运行后报错:
复现步骤
1、执行pnpm run start后,进入packages/taro-ui-demo-rn目录后,运行pnpm run dev:rn
命令,然后根据提示执行
pnpm add react@^18.1.0 react-dom@^18.1.0 @tarojs/taro-rn@3.6.6 @tarojs/components-rn@3.6.6 @tarojs/rn-supporter@3.6.6 @tarojs/runtime-rn@3.6.6 --save
2、config/index.js
文件中增加以下配置:
const config = {
// ...,
compiler: {
type: 'webpack5',
prebundle: {
// 在 taro3.5 之后的版本中,在开启 prebundle (默认开启)的情况下,会导致 @guazi-fe/koala-ui 所引用的 @taro/components 组件没有被打进最终的 bundle 中,导致页面表现异常。
exclude: ['taro-ui']
}
},
rn: {
resolve: {
include: ['../taro-ui'],
},
enableSvgTransform: true,
},
}
3、metro.config.js
中修改配置:
// ...
const modules = [
// ...
'@tarojs/taro-rn',
'@tarojs/rn-supporter',
]
// ...
4、再次运行pnpm run dev:rn --reset-cache
命令,就会报上述👆🏻描述中的错误(不更改2、3步配置也会报)。
期望行为
能够正常启动packages/taro-ui-demo-rn项目并调试rn端组件。
报错信息
error: Error: Unable to resolve module @tarojs/rn-supporter/entry-file.js from /taro-ui/packages/taro-ui-demo-rn/index.js:
None of these files exist:
- node_modules/@tarojs/rn-supporter/entry-file.js(.native|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.scss|.native.scss|.scss|.android.sass|.native.sass|.sass|.android.less|.native.less|.less|.android.css|.native.css|.css|.android.pcss|.native.pcss|.pcss|.android.json|.native.json|.json|.android.styl|.native.styl|.styl|.android.cjs|.native.cjs|.cjs|.android.svgx|.native.svgx|.svgx|.android.svg|.native.svg|.svg)
- node_modules/@tarojs/rn-supporter/entry-file.js/index(.native|.android.ts|.native.ts|.ts|.android.tsx|.native.tsx|.tsx|.android.js|.native.js|.js|.android.jsx|.native.jsx|.jsx|.android.scss|.native.scss|.scss|.android.sass|.native.sass|.sass|.android.less|.native.less|.less|.android.css|.native.css|.css|.android.pcss|.native.pcss|.pcss|.android.json|.native.json|.json|.android.styl|.native.styl|.styl|.android.cjs|.native.cjs|.cjs|.android.svgx|.native.svgx|.svgx|.android.svg|.native.svg|.svg)
1 | import '@tarojs/rn-supporter/entry-file.js'
| ^
2 |
at ModuleResolver.resolveDependency (/taro-ui/node_modules/.pnpm/metro@0.73.10/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:141:15)
at DependencyGraph.resolveDependency (/taro-ui/node_modules/.pnpm/metro@0.73.10/node_modules/metro/src/node-haste/DependencyGraph.js:260:43)
at Object.resolve (/taro-ui/node_modules/.pnpm/metro@0.73.10/node_modules/metro/src/lib/transformHelpers.js:177:33)
at Graph._resolveDependencies (/taro-ui/node_modules/.pnpm/metro@0.73.10/node_modules/metro/src/DeltaBundler/Graph.js:432:35)
at Graph._processModule (/taro-ui/node_modules/.pnpm/metro@0.73.10/node_modules/metro/src/DeltaBundler/Graph.js:218:38)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async Graph._traverseDependenciesForSingleFile (/taro-ui/node_modules/.pnpm/metro@0.73.10/node_modules/metro/src/DeltaBundler/Graph.js:207:5)
at async Promise.all (index 0)
at async Graph.initialTraverseDependencies (/taro-ui/node_modules/.pnpm/metro@0.73.10/node_modules/metro/src/DeltaBundler/Graph.js:191:5)
at async DeltaCalculator._getChangedDependencies (/taro-ui/node_modules/.pnpm/metro@0.73.10/node_modules/metro/src/DeltaBundler/DeltaCalculator.js:196:25)
系统信息
Taro v3.6.6
Taro CLI 3.6.6 environment info:
System:
OS: macOS 14.6
Shell: 5.9 - /bin/zsh
Binaries:
Node: 16.20.2 - ~/.nvm/versions/node/v16.20.2/bin/node
Yarn: 1.22.21 - ~/.nvm/versions/node/v16.20.2/bin/yarn
npm: 8.19.4 - ~/.nvm/versions/node/v16.20.2/bin/npm
pnpm: 7.33.6- ~/.nvm/versions/node/v16.20.2/bin/pnpm
npmPackages:
@tarojs/cli: 3.6.6 => 3.6.6
@tarojs/components: 3.6.6 => 3.6.6
@tarojs/components-rn: 3.6.6 => 3.6.6
@tarojs/mini-runner: 3.6.6 => 3.6.6
@tarojs/plugin-framework-react: 3.6.6 => 3.6.6
@tarojs/react: 3.6.6 => 3.6.6
@tarojs/rn-runner: 3.6.6 => 3.6.6
@tarojs/rn-supporter: 3.6.6 => 3.6.6
@tarojs/runtime: 3.6.6 => 3.6.6
@tarojs/runtime-rn: 3.6.6 => 3.6.6
@tarojs/taro: 3.6.6 => 3.6.6
@tarojs/taro-rn: 3.6.6 => 3.6.6
@tarojs/webpack-runner: 3.6.6 => 3.6.6
babel-preset-taro: 3.6.6 => 3.6.6
eslint-config-taro: 3.6.6 => 3.6.6
expo: ~47.0.14 => 47.0.14
react: ^18.2.0 => 18.2.0
react-native: ^0.71.6 => 0.71.6
taro-ui: workspace:^ => 3.3.0
补充信息
想解决rn端组件bug和贡献rn端组件,但是不清楚是不是metro配置有问题,还是哪里有问题,taro-ui-demo-rn无法正常运行,恳请大佬帮忙解决下。