【发布时间】:2017-12-29 07:19:50
【问题描述】:
如何清理 react 原生项目?
有什么办法可以像清理 xcode 项目一样清理 react 原生项目吗?
任何帮助将不胜感激!
【问题讨论】:
如何清理 react 原生项目?
有什么办法可以像清理 xcode 项目一样清理 react 原生项目吗?
任何帮助将不胜感激!
【问题讨论】:
一个 react-native 项目大约是一个 XCode 项目 和一个 Android 项目。 (对于纯js代码,不需要做clean)
所以,你需要的是
使用
清理 XCode 项目cd ios
xcodebuild clean
然后用
清理Android项目cd android
./gradlew clean
你可以简单地为它写一个批处理文件。
【讨论】:
xcodebuild clean -workspace [*.xcworkspace file] -scheme [project name] 如果您不知道您的文件名/方案,只需在运行正常构建时查看终端中的前几行输出行。它会说:info Found Xcode workspace "x.xcworkspace"info Building (using "xcodebuild -workspace [etc] 第二行,从那里使用 -workspace 和 -scheme 信息。干杯
对于安卓项目
cd android &&./gradlew clean && cd ../
对于 iOS 项目
cd ios && xcodebuild clean && cd ../
如果你需要一次又一次地构建干净,然后像这样在 package.json 文件中添加这个脚本
scripts: {
"clean:android": "cd android && ./gradlew clean && cd ../",
"clean:ios": "cd ios && xcodebuild clean && cd ../",
}
然后为安卓运行
yarn clean:android
并为 iOS 运行
yarn clean:ios
【讨论】:
cd和../之间加一个空格
适用于安卓
cd android
gradlew clean
IOS
cd ios
xcodebuild clean
【讨论】:
gradlew clean 命令清理缓存时,出现错误:gradlew : The term 'gradlew' is not recognized as the name of a cmdlet 为什么?
cd android/gradlew -v
E:\Projects\ReactNative\TextAnalyser\android\android\gradlew' because it does not exist
删除节点模块和
npm ci
react-native link
紧随其后
react-native start --reset-cache
【讨论】:
我在 package.json 中添加了以下脚本
scripts: {
....
"clean:android": "echo 'require(\"child_process\").execSync(\"cd android; ./gradlew clean\", {stdio: \"inherit\"})' | node ",
"clean:ios": "echo 'require(\"child_process\").execSync(\"cd ios; xcodebuild clean\", {stdio: \"inherit\"})' | node ",
"clean": "npm run clean:android && npm run clean:ios",
....
}
现在您可以清理 android
npm run clean:android
干净的 ios
npm run clean:ios
清理两者
npm run clean
【讨论】:
React Native clean-project 现在是处理 react-native 工件和清理的最佳和最简单的方法。由于是 react-native 自动检测到的,所以在 react-native 中成为自己的命令。
$ yarn add -D react-native-clean-project
$ react-native clean-project
【讨论】:
要重置 react-native 特定的缓存,运行:
npm start -- --reset-cache
如果你在 package.json 中有
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start"
}
【讨论】:
此脚本将清理 Android 和 IOS 构建缓存,然后删除节点模块和缓存,并重新安装 react native 项目。
# rm -rf $HOME/.gradle/caches/
cd android && ./gradlew cleanBuildCache
cd ..
cd ios && pod cache clean --all && rm -rf build
cd ..
rm -rf node_modules
yarn cache clean --force
yarn install
cd ios && pod install
要重置 iOS 模拟器并清除所有模拟器数据,请专注于模拟器,然后转到硬件 -> 清除所有内容和设置
要重置 Android 模拟器并擦除所有数据,请打开 Android Studio,然后转到菜单工具 -> AVD 管理器,然后单击所选模拟器上的下拉菜单并单击擦除数据。
【讨论】:
React 和 node 特定清理:
删除node_modules 以避免可能很少出现的不一致:
rm -rf node_modules
(如果需要,请使用 npm 或 yarn 重新安装)
如果使用npm,则清理npm 缓存
npm cache clean
清理反应临时文件:
rm -rf $TMP/react*
【讨论】:
使用以下命令清理 Android 项目:
cd android/
gradlew clean
【讨论】:
更有用的清洁脚本。根据其他出色的答案,将模块清理和本机清理分开:
"scripts": {
"npm:clean": "rm -rf node_modules && npm cache clean && npm install"
"yarn:clean": "rm -rf node_modules && yarn cache clean --force && yarn install"
"android:clean": "cd android && ./gradlew clean && ./gradlew cleanBuildCache && cd ..",
"ios:clean": "cd ios && xcodebuild clean && rm -rf ~/Library/Caches/CocoaPods && rm -rf Pods && rm -rf ~/Library/Developer/Xcode/DerivedData/* && pod cache clean --all && pod deintegrate && pod setup && pod install && cd ..",
}
【讨论】:
删除安卓文件夹 运行
react-native upgrade
然后
react-native run-android
【讨论】: