stencil 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/usr/bin/env node
  2. 'use strict';
  3. var minimumVersion = '12.10';
  4. var futureDeprecationMinVersion = '14.0';
  5. var recommendedVersion = '14.5';
  6. var currentVersion = process.versions.node;
  7. function isNodeLT(v) {
  8. var check = v.split('.').map(Number);
  9. var node = currentVersion.split('.').map(Number);
  10. return node[0] < check[0] || (node[0] === check[0] && node[1] < check[1]);
  11. }
  12. if (isNodeLT(minimumVersion)) {
  13. console.error(
  14. '\nYour current version of Node is v' +
  15. currentVersion +
  16. ', however Stencil requires v' +
  17. minimumVersion +
  18. '.0 or greater. It is recommended to use an Active LTS version of Node (https://nodejs.org/en/about/releases/).\n'
  19. );
  20. process.exit(1);
  21. }
  22. if (isNodeLT(futureDeprecationMinVersion)) {
  23. console.warn(
  24. '\nIn an upcoming major release of Stencil, Node v' + recommendedVersion + '.0 or higher will be required.\n'
  25. );
  26. } else if (isNodeLT(recommendedVersion)) {
  27. console.warn(
  28. '\nYour current version of Node is v' +
  29. currentVersion +
  30. ", however Stencil's recommendation is v" +
  31. recommendedVersion +
  32. '.0 or greater. Note that future versions of Stencil will eventually remove support for non-LTS Node versions and an Active LTS version is recommended (https://nodejs.org/en/about/releases/).\n'
  33. );
  34. }
  35. var cli = require('../cli/index.cjs');
  36. var nodeApi = require('../sys/node/index.js');
  37. var nodeLogger = nodeApi.createNodeLogger({ process: process });
  38. var nodeSys = nodeApi.createNodeSys({ process: process, logger: nodeLogger });
  39. nodeApi.setupNodeProcess({ process: process, logger: nodeLogger });
  40. cli
  41. .run({
  42. args: process.argv.slice(2),
  43. logger: nodeLogger,
  44. sys: nodeSys,
  45. checkVersion: nodeApi.checkVersion,
  46. })
  47. .catch(function (err) {
  48. console.error('uncaught error', err);
  49. process.exit(1);
  50. });