next-export.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. #!/usr/bin/env node
  2. "use strict";
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.nextExport = void 0;
  7. var _path = require("path");
  8. var _fs = require("fs");
  9. var _indexJs = _interopRequireDefault(require("next/dist/compiled/arg/index.js"));
  10. var _export = _interopRequireDefault(require("../export"));
  11. var _utils = require("../server/lib/utils");
  12. var _trace = require("../trace");
  13. var _isError = _interopRequireDefault(require("../lib/is-error"));
  14. var _getProjectDir = require("../lib/get-project-dir");
  15. function _interopRequireDefault(obj) {
  16. return obj && obj.__esModule ? obj : {
  17. default: obj
  18. };
  19. }
  20. const nextExport = (argv)=>{
  21. const nextExportCliSpan = (0, _trace).trace("next-export-cli");
  22. const validArgs = {
  23. // Types
  24. "--help": Boolean,
  25. "--silent": Boolean,
  26. "--outdir": String,
  27. "--threads": Number,
  28. // Aliases
  29. "-h": "--help",
  30. "-s": "--silent",
  31. "-o": "--outdir"
  32. };
  33. let args;
  34. try {
  35. args = (0, _indexJs).default(validArgs, {
  36. argv
  37. });
  38. } catch (error) {
  39. if ((0, _isError).default(error) && error.code === "ARG_UNKNOWN_OPTION") {
  40. return (0, _utils).printAndExit(error.message, 1);
  41. }
  42. throw error;
  43. }
  44. if (args["--help"]) {
  45. console.log(`
  46. Description
  47. Exports the application for production deployment
  48. Usage
  49. $ next export [options] <dir>
  50. <dir> represents the directory of the Next.js application.
  51. If no directory is provided, the current directory will be used.
  52. Options
  53. -h - list this help
  54. -o - set the output dir (defaults to 'out')
  55. -s - do not print any messages to console
  56. `);
  57. process.exit(0);
  58. }
  59. const dir = (0, _getProjectDir).getProjectDir(args._[0]);
  60. // Check if pages dir exists and warn if not
  61. if (!(0, _fs).existsSync(dir)) {
  62. (0, _utils).printAndExit(`> No such directory exists as the project root: ${dir}`);
  63. }
  64. const options = {
  65. silent: args["--silent"] || false,
  66. threads: args["--threads"],
  67. outdir: args["--outdir"] ? (0, _path).resolve(args["--outdir"]) : (0, _path).join(dir, "out")
  68. };
  69. (0, _export).default(dir, options, nextExportCliSpan).then(()=>{
  70. nextExportCliSpan.stop();
  71. (0, _utils).printAndExit(`Export successful. Files written to ${options.outdir}`, 0);
  72. }).catch((err)=>{
  73. nextExportCliSpan.stop();
  74. (0, _utils).printAndExit(err);
  75. });
  76. };
  77. exports.nextExport = nextExport;
  78. //# sourceMappingURL=next-export.js.map