prepareUMDDevPackages.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // Dependecies.
  2. const fs = require('fs-extra');
  3. const path = require('path');
  4. const rmDir = require("../../NodeHelpers/rmDir");
  5. const colorConsole = require("../../NodeHelpers/colorConsole");
  6. const shelljs = require("shelljs");
  7. // Global Variables.
  8. const config = require("../../Config/config.js");
  9. /**
  10. * Prepare a UMD Dev folder npm linked for test purpose.
  11. */
  12. function prepareUMDDevPackages() {
  13. config.modules.forEach(moduleName => {
  14. if (moduleName === "sandbox") {
  15. // Do not publish apps
  16. return;
  17. }
  18. let module = config[moduleName];
  19. colorConsole.log("Prepare " + "UMDDev".magenta + " Package: " + moduleName.blue.bold);
  20. let packagePath = module.computed.packageUMDDirectory;
  21. let packageDevPath = module.computed.packageUMDDevDirectory;
  22. colorConsole.log(" Cleanup " + packageDevPath.cyan);
  23. rmDir(packageDevPath);
  24. colorConsole.log(" Copy Package folder " + packagePath.cyan + " to " + packageDevPath.cyan);
  25. fs.copySync(packagePath, packageDevPath);
  26. const packageUMDDevJSONPath = path.join(packageDevPath, "package.json");
  27. const packageUMDDevJSON = require(packageUMDDevJSONPath);
  28. for (let dependency in packageUMDDevJSON.dependencies) {
  29. if (dependency.indexOf("babylon") > -1) {
  30. colorConsole.log(" Execute Npm Link " + dependency.yellow);
  31. const command = `npm link ${dependency}`;
  32. const result = shelljs.exec(command, {
  33. async: false,
  34. cwd: packageDevPath
  35. });
  36. if (result.code != 0) {
  37. throw "Failed to link the ES6 package."
  38. }
  39. }
  40. }
  41. colorConsole.log(" Execute Npm Link command");
  42. const command = `npm link`;
  43. const result = shelljs.exec(command, {
  44. async: false,
  45. cwd: packageDevPath
  46. });
  47. if (result.code != 0) {
  48. throw "Failed to link the ES6 package."
  49. }
  50. colorConsole.emptyLine();
  51. });
  52. }
  53. module.exports = prepareUMDDevPackages;