prepareEs6DevPackages.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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 an es6 Dev folder npm linked for test purpose.
  11. */
  12. function prepareEs6DevPackages() {
  13. config.modules.forEach(moduleName => {
  14. const module = config[moduleName];
  15. colorConsole.log("Prepare " + "ES6Dev".magenta + " Package: " + moduleName.blue.bold);
  16. const packagePath = module.computed.packageES6Directory;
  17. const packageDevPath = module.computed.packageES6DevDirectory;
  18. colorConsole.log(" Cleanup " + packageDevPath.cyan);
  19. rmDir(packageDevPath);
  20. colorConsole.log(" Copy Package folder " + packagePath.cyan + " to " + packageDevPath.cyan);
  21. fs.copySync(packagePath, packageDevPath);
  22. const packageES6DevJSONPath = path.join(packageDevPath, "package.json");
  23. const packageES6DevJSON = require(packageES6DevJSONPath);
  24. for (let dependency in packageES6DevJSON.dependencies) {
  25. if (dependency.indexOf("babylon") > -1) {
  26. colorConsole.log(" Execute Npm Link " + dependency.yellow);
  27. const command = `npm link ${dependency}`;
  28. const result = shelljs.exec(command, {
  29. async: false,
  30. cwd: packageDevPath
  31. });
  32. if (result.code != 0) {
  33. throw "Failed to link the ES6 package."
  34. }
  35. }
  36. }
  37. colorConsole.log(" Execute Npm Link command");
  38. const command = `npm link`;
  39. const result = shelljs.exec(command, {
  40. async: false,
  41. cwd: packageDevPath
  42. });
  43. if (result.code != 0) {
  44. throw "Failed to link the ES6 package."
  45. }
  46. colorConsole.emptyLine();
  47. });
  48. }
  49. module.exports = prepareEs6DevPackages;