Windows 10环境下迁移Mac端React Native项目执行npm install出现‘.’命令未找到错误
解决Windows下npm安装react-native-router-flux@4.0.6时“.”命令未识别的问题
看了你的日志,问题根源很清楚:react-native-router-flux@4.0.6的postinstall脚本用了Unix系统专属的命令写法./node_modules/.bin/opencollective postinstall,而Windows的CMD完全不兼容这种语法,所以才会报错“'.' is not recognized as an internal or external command”。
下面给你几个可行的解决办法,按需选择:
方法一:临时跳过脚本完成安装
如果只是想先把所有依赖装完,之后再处理这个postinstall的需求,可以直接用--ignore-scripts参数跳过所有安装脚本:
npm install --ignore-scripts
安装完成后,如果你需要执行那个opencollective的postinstall操作,可以手动在项目根目录运行:
npx opencollective postinstall
方法二:手动修改依赖的postinstall脚本
因为这个版本的react-native-router-flux比较老旧,官方大概率不会修复这个跨平台问题了,你可以直接修改它的package.json脚本:
- 找到项目目录下的
node_modules/react-native-router-flux/package.json文件 - 定位到
scripts字段里的postinstall,把原来的:
替换成Windows兼容的写法:"postinstall": "./node_modules/.bin/opencollective postinstall""postinstall": "npx opencollective postinstall" - 保存文件后,重新执行
npm install(或者直接单独跑这个依赖的postinstall:npm run postinstall --prefix node_modules/react-native-router-flux)
方法三:用npm overrides持久化修复(推荐)
如果不想每次重装依赖都要手动修改node_modules里的内容,可以在你的项目根目录package.json中添加overrides字段,强制替换这个依赖的postinstall脚本:
{ "overrides": { "react-native-router-flux": { "scripts": { "postinstall": "npx opencollective postinstall" } } } }
添加完成后,重新执行npm install,npm会自动用你指定的脚本替换原依赖的postinstall命令,完美解决跨平台问题。
内容的提问来源于stack exchange,提问作者user2800411
相关产品推荐
相关产品推荐

