Передача process.argv.pop функции - PullRequest
0 голосов
/ 06 мая 2020

Работая с node.js примером canvg , я могу успешно преобразовать SVG в PNG (код работает). У меня вопрос, состоящий из двух частей.

Во-первых, я конвертирую импорт в требуемый, чтобы он работал под Node v12.16.3:

const fs = require("fs").promises;
const DOMParser = require("xmldom").DOMParser;
const canvas = require("canvas");
const fetch = require("node-fetch").fetch;
const Canvg = require("canvg").Canvg;
const presets = require("canvg").presets;

//Will the above "requires" work the same as the below "imports"?

import { promises as fs } from "fs";
import { DOMParser } from "xmldom";
import * as canvas from "canvas";
import fetch from "node-fetch";
import Canvg, { presets } from "canvg";

Это правильный способ выполнения "require"?

Вторая часть вопроса с использованием полного кода:

const fs = require("fs").promises;
const DOMParser = require("xmldom").DOMParser;
const canvas = require("canvas");
const fetch = require("node-fetch").fetch;
const Canvg = require("canvg").Canvg;
const presets = require("canvg").presets;

const preset = presets.node({
  DOMParser,
  canvas,
  fetch,
});

//
(async (output, input) => {
  const svg = await fs.readFile("./mynewfile.svg", "utf8"); //imports an SVG
  const canvas = preset.createCanvas(800, 600); //creates a canvas
  const ctx = canvas.getContext("2d"); //Returns a drawing conext
  const v = Canvg.fromString(ctx, svg, preset); //Builds the canvas from the above variables

  // Render only first frame, ignoring animations.
  await v.render();

  const png = canvas.toBuffer(); //Pushes rendered canvas to buffer?

  await fs.writeFile("./mynewfile.png", png); //creates the png
})(process.argv.pop(), process.argv.pop()); //Is this passing process.argv.pop() as an input and and output of this function?

Почему process.argv.pop () передается как вход и выход этой функции?

...