prepareEs6DevPackages.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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.es6modules.forEach(moduleName => {
  14. if (moduleName === "viewer") {
  15. // Do not publish locally as an es6 npm linked module
  16. return;
  17. }
  18. const module = config[moduleName];
  19. colorConsole.log("Prepare " + "ES6Dev".magenta + " Package: " + moduleName.blue.bold);
  20. const packagePath = module.computed.packageES6Directory;
  21. const packageDevPath = module.computed.packageES6DevDirectory;
  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 packageES6DevJSONPath = path.join(packageDevPath, "package.json");
  27. const packageES6DevJSON = require(packageES6DevJSONPath);
  28. for (let dependency in packageES6DevJSON.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 = prepareEs6DevPackages;