node.js 和 javascript 库/脚本示例:无输出

问题描述 投票:0回答:1

我正在尝试获取

javascript
this 旧帖子上的代码 - 将 SVG 文件转换为纯文本格式的 x,y 坐标 - 以工作,我想知道我缺少什么 - 它看起来很简单。我把我的设置和结果放在下面。我把脚本放在这里,它的注释来自原始帖子:

“用内容编写 config.json,例如。”

{
  "joinPathData": false,
  "minDistance": 0.5,
  "roundToNearest": 0.25,
  "sampleFrequency": 0.001,
  "pretty": false,
  "prettyIndent": 0
}

引用:“在您的代码中,您可以像这样使用库:”

import SVGPathInterpolator from 'SVGPathInterpolator';
const svgString = `
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px"
width="792px" height="612px" viewBox="0 0 792 612" enable-background="new 0 0 792 612" xml:space="preserve">
    <g>
        <path id="path3789" d="M287.168,442.411
        c-8.65,0-15.652,7.003-15.652,15.653
        c0,8.65,7.003,15.69,15.652,15.69
        s15.653-7.04,15.653-15.69
        "/>
    </g>
</svg>
`;
const config = {
    joinPathData: false,
    minDistance: 0.5,
    roundToNearest: 0.25,
    sampleFrequency: 0.001
};
const interpolator = new SVGPathInterpolator(config);
const pathData = interpolator.processSvg(svgString);

我按照描述毫无问题地获得了 SVGPathInterpolator 库。引用:“运行它

svgpi config.json ballons.svg ballons.js"
。(文件
balloons.svg
这里)。

而不是我发现很少的

svgpi
,我通过使用
node v19.7.0
npm
得到了
nvm
,如下在各种网页上 - 实际上是
apt
,这可能是错误的做法.

我在

bash
shell 中执行
node config.json my_script_01.json balloons.svg output.js
并且该过程简单地完成而没有任何输出或消息。事实上,这是一个新的结果——我刚才只得到了这么多——之前,我的设置产生了诸如
Unexpected token 'i', "import SVG"... is not valid JSON
之类的错误。也许我在正确的轨道上——我正在寻找描述 SVG 文件中矢量形状的 ASCII 纯文本 x、y 坐标(见下文)。

我可以看到 shell 环境变量,例如

NVM_INC
但我不确定这是否相关。基本
javascript
示例有效(例如来自 https://nodejs.dev/en/learn)。更复杂的脚本没有,我想我误解了如何使用示例脚本。

上面的

javascript
摘录是否预计会以某种方式构建到更大的脚本中,例如网页 - 即不是从命令行运行,而是在浏览器中运行?我也看到了这些示例脚本是如何工作的,所以也许我可以弄清楚如何制作网页。该帖子描述了一个 website,它在将
svg
文件向量转换为
x,y
坐标方面非常有效 - 因此,我希望示例脚本能够做到这一点 - 但我无法理解脚本与此相关的方式 - 我知道我可以阅读一些使用浏览器的网站代码,但我不确定要查找什么。

顺便说一句:我问过关于在 Meta S.E 上问这个问题。首先,我正在使用 that post 的最佳指导。否则,我会发表评论,因为我的声誉目前是 37。

javascript node.js svg command-line nvm
1个回答
0
投票

引用的答案中的描述在某种程度上是准确的,但遗漏了一个细节(我认为)如果您使用的是 Windows 系统则无关紧要。使用 -g 标志全局安装

library

npm install -g svg-path-interpolator

可能需要 Debianoid 系统的管理权限(我从您的

apt
参考中推断)。主要目的是使脚本
svg-path-interpolator/bin/svgpi.mjs
作为全局命令
svgpi
对所有用户可用。看来这对您来说失败了,为什么这里是一个超出范围的问题。 (可能会给你一些提示。)

但是不需要全局命令,直接用node.js解释器执行文件即可:

node path/to/svgpi.mjs config.json balloons.svg output.json

如果你确定你有权执行

svgpi.mjs
,你甚至可以省略对节点的调用。 (脚本的第一行是hashbang。)

path/to/svgpi.mjs config.json ballons.svg output.json

在答案中,以“在您的代码中您可以使用”开头的部分描述了一种 alternative 使用库的方法。所以你

  • do not 如果您想从命令行转换,则需要这样的脚本。你只需要一个
    config.json
    ,一个输入
    ballons.svg
    ,一个
    output.json
    就会被写出来。
  • 如果您想将转换与其他 node.js 任务集成,则需要该脚本。然后引用的脚本替换输入文件,包括它们的内联内容作为变量。输出也仅显示为变量的值。

在你太惊讶之前:输出不是“纯文本格式”,而是一个 JSON 文件(或者它的等效对象,同时仍然保存在一个变量中)。

© www.soinside.com 2019 - 2024. All rights reserved.