Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

update_dependencies.js 2.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /* eslint-disable guard-for-in, no-continue */
  2. /* global __dirname */
  3. const fs = require('fs');
  4. const path = require('path');
  5. const semver = require('semver');
  6. const pathToPackageJSON = path.resolve(__dirname, '../../../package.json');
  7. const packageJSON = require(pathToPackageJSON);
  8. const RNSDKpackageJSON = require(path.resolve(__dirname, './package.json'));
  9. /**
  10. * Updates dependencies from the app package.json with the peer dependencies of the RNSDK package.json.
  11. */
  12. function updateDependencies() {
  13. let updated = false;
  14. for (const key in RNSDKpackageJSON.peerDependencies) {
  15. if (!packageJSON.dependencies.hasOwnProperty(key)) {
  16. packageJSON.dependencies[key] = RNSDKpackageJSON.peerDependencies[key];
  17. updated = true;
  18. }
  19. if (!semver.valid(packageJSON.dependencies[key])) {
  20. packageJSON.dependencies[key] = RNSDKpackageJSON.peerDependencies[key];
  21. updated = true;
  22. console.log(`
  23. ⚠️We changed ${key} version number from ${packageJSON.dependencies[key]} to ${RNSDKpackageJSON.peerDependencies[key]}`
  24. );
  25. continue;
  26. }
  27. if (semver.satisfies(RNSDKpackageJSON.peerDependencies[key], `=${packageJSON.dependencies[key]}`)) {
  28. continue;
  29. }
  30. if (semver.satisfies(RNSDKpackageJSON.peerDependencies[key], `>${packageJSON.dependencies[key]}`)) {
  31. packageJSON.dependencies[key] = RNSDKpackageJSON.peerDependencies[key];
  32. updated = true;
  33. console.log(`${key} is now set to ${RNSDKpackageJSON.peerDependencies[key]}`);
  34. }
  35. }
  36. packageJSON.overrides = packageJSON.overrides || {};
  37. for (const key in RNSDKpackageJSON.overrides) {
  38. if (!packageJSON.overrides.hasOwnProperty(key)) {
  39. packageJSON.overrides[key] = RNSDKpackageJSON.overrides[key];
  40. updated = true;
  41. }
  42. }
  43. if (!updated) {
  44. console.log('All your dependencies are up to date!');
  45. return;
  46. }
  47. console.log(`
  48. =========================
  49. 🚀 Your project was updated!
  50. 🛠 Make sure you run npm install
  51. 📱 If you are building for iOS run cd ios && pod install to link them.
  52. =========================
  53. `);
  54. packageJSON.dependencies = Object.keys(packageJSON.dependencies)
  55. .sort()
  56. .reduce((item, itemKey) => {
  57. item[itemKey] = packageJSON.dependencies[itemKey];
  58. return item;
  59. }, {});
  60. fs.writeFileSync(pathToPackageJSON, JSON.stringify(packageJSON, null, 2));
  61. console.log(
  62. 'All needed dependencies have been updated. \nPlease run npm install.'
  63. );
  64. }
  65. updateDependencies();