使用“spawn”函数从 node:child_process 执行 node.js npm 包

Execute node.js npm package from node:child_process using `spawn` function

提问人:Nir Tamir 提问时间:11/13/2023 更新时间:11/13/2023 访问量:12

问:

我正在构建一个黑曜石插件。 我能够获得在电子中运行的 node.js 函数的回调。 我希望此命令将转到特定路径并运行 “npm run slidev”在配置的路径中。 我假设软件包'slidev安装在配置的指令中的项目中(如运行 “npm i”在具有此依赖项的文件夹中 'package.json'),并且用户已安装 node.js。 如果用户在终端中运行此脚本 - slidev 插件有效。我希望它与“spawn”函数一起使用

当我在我的 node.js 函数中尝试此操作时 - 此函数失败 - 它不知道 node.js 在哪里。 扩展问题 展示你尝试过什么,告诉我们什么,以及为什么它遇到了你的 需要。 并非所有问题都能从包含代码中受益,但如果通过编写的代码可以更好地理解您的问题,则应包含一个最小的、可重现的示例。 请确保将代码和错误作为文本直接发布到问题中(而不是图像),并适当地设置它们的格式。

const codeBlockContent = [|
// This makes node & npm usable
config.initialScript,
// If you use nom scripts, don't forget to add -- after the npm command:
npm run slidev §{slidePathRelativeToTemplatePath} — --port ${config.port},
return spawn|codeBlockContent, Il, f env: process.env, shell: true,
// cwd: templatePath,
});

过去,在我的第二台计算机中 - 通过配置“initialScript to source $HOME/.profile”,我能够让它工作。我想知道这里缺少哪个脚本?我可以跑 “回声”嗨“',但我 无法获取 node.js 版本。顺便说一句 - 我使用 fnm 作为节点版本管理器。我不确定与node.js进程相比,终端中的执行顺序是什么。

谢谢!

节点.js 进程 生成

评论


答: 暂无答案