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