更新React Native衍生框架后,yarn add与npm install --save均无法安装依赖至本地项目
项目背景
- 已fork原作者停止维护的React Native衍生框架项目,同时fork了该框架配套的安装器脚本项目。
- 原安装器可正常运行,因主框架存在局部问题,将框架依赖的React Native版本更新至对应版本后,配套安装器无法正常工作。
安装器核心代码片段
function installDesktopPackage() { let rndPackage = PACKAGE; console.log(`Installing ${rndPackage}...`); const pkgmgr = Common.isGlobalCliUsingYarn(process.cwd()) ? 'yarn add' : 'npm install --save'; const execOptions = {stdio: 'inherit'}; // use {stdio: 'inherit'} for verbose execSync(`${pkgmgr} ${rndPackage}`, execOptions); console.log(chalk.green(`${rndPackage} successfully installed.`)); } function runDesktopFilesGenerationScript() { const generateDesktop = require(REACT_NATIVE_DESKTOP_GENERATE_PATH()); generateDesktop(process.cwd(), Common.getReactNativeAppName()); }
按照设计逻辑,两个函数的职责划分:
installDesktopPackage:负责将框架文件安装到本地项目目录runDesktopFilesGenerationScript:负责调用对应脚本完成桌面端文件的正确部署
运行报错详情
按照项目文档指引运行安装器时,抛出如下模块找不到的错误:
Cannot find module '/home/jihoo/Desktop/test/node_modules/react-native-desktop-qt/local-cli/generate-desktop.js' Require stack: - /home/jihoo/.npm/_npx/41097/lib/node_modules/react-native-desktop-qt-init/src/cli.js - /home/jihoo/.npm/_npx/41097/lib/node_modules/react-native-desktop-qt-init/bin.js Error: Cannot find module '/home/jihoo/Desktop/test/node_modules/react-native-desktop-qt/local-cli/generate-desktop.js' Require stack: - /home/jihoo/.npm/_npx/41097/lib/node_modules/react-native-desktop-qt-init/src/cli.js - /home/jihoo/.npm/_npx/41097/lib/node_modules/react-native-desktop-qt-init/bin.js at Function.Module._resolveFilename (internal/modules/cjs/loader.js:880:15) at Function.Module._load (internal/modules/cjs/loader.js:725:27) at Module.require (internal/modules/cjs/helpers.js:88:19) at require (internal/modules/cjs/helpers.js:88:18) at runDesktopFilesGenerationScript (/home/jihoo/.npm/_npx/41097/lib/node_modules/react-native-desktop-qt-init/src/cli.js:34:27) at /home/jihoo/.npm/_npx/41097/lib/node_modules/react-native-desktop-qt-init/src/cli.js:44:5 at Object.<anonymous> (/home/jihoo/.npm/_npx/41097/lib/node_modules/react-native-desktop-qt-init/src/cli.js:50:3) at Module._compile (internal/modules/cjs/loader.js:1063:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10) at Module.load (internal/modules/cjs/loader.js:928:32) { code: 'MODULE_NOT_FOUND', requireStack: [ '/home/jihoo/.npm/_npx/41097/lib/node_modules/react-native-desktop-qt-init/src/cli.js', '/home/jihoo/.npm/_npx/41097/lib/node_modules/react-native-desktop-qt-init/bin.js' ] }
问题排查情况
- 经确认,
installDesktopPackage函数执行完成后,本地项目目录未生成任何相关框架文件,包括runDesktopFilesGenerationScript函数依赖的{PROJECT_PATH}/node_modules/react-native-desktop-qt/local-cli/generate-desktop.js文件。 - 手动在项目根目录下分别执行
yarn add和npm install --save命令安装目标包,两种方式安装完成后,node_modules目录下均未找到对应框架文件。 - 先后清理npm、Yarn的本地缓存后重试安装流程,问题仍未解决。
当前运行环境配置
- 操作系统:CentOS 8
- 环境依赖:Qt 5.12.2、Node.js 14.15.4 LTS、npm 6.14.10、Yarn 1.22.10、React Native 0.63.4、react-native-cli 2.0.1
- 开发工具:JetBrains WebStorm 2020.3
内容的提问来源于stack exchange,提问作者Jihoo Byeon
相关产品推荐
相关产品推荐

