如何解决`yarn add` 和 `npm install --save` 都不会将软件包安装到本地项目
我 fork 了一个 React Native 衍生的框架项目,原作者最近停止维护。原作者又做了一个项目,是框架的安装脚本。所以我也分叉了这个。
后者效果很好,但前者有点问题,所以我更新了框架的 React Native 版本到最新。
但更新后,安装程序不起作用。
下面是安装程序主要代码的核心部分。 Full Code
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
应将文件安装到正确的位置。
但是当我ran安装程序代码时,会出现此错误:
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/loader.js:952: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
没有添加任何文件,包括{PROJECT_PATH}/node_modules/react-native-desktop-qt/local-cli/generate-desktop.js
需要的runDesktopFilesGenerationScript
所以我手动尝试了 yarn add
和 npm install --save
,但都没有将任何文件添加到 {PROJECT_PATH}/node_modules/
我尝试清理 npm 和 Yarn 的缓存,并重试,但结果相同。
我的规格是:
CentOS 8
Qt 5.12.2
Node.js 14.15.4 LTS
npm 6.14.10
纱线 1.22.10
反应本机 0.63.4
react-native-cli 2.0.1
JetBrains WebStorm 2020.3
解决方法
我解决了。我不小心破坏了我的项目的 packages.json
,因此脚本在错误的路径中安装了框架。我修好了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。