Когда я пытаюсь выполнить child_process spawn в интерактивном режиме node -i, это работает, без проблем.
Например.
node -i
> const { spawn } = require('node:child_process');
> spawn("ls", ["-lah"]);
Дочерний процесс создан, все нормально.
Когда я пытаюсь использовать child_process в машинописном тексте, например
...
import spawn from "node:child_process";
...
spawn("ls", ["-lah"]);
это не работает.
VSCode выделяет последнюю строку spawn(...) с сообщением об ошибке.
This expression is not callable.
Type 'typeof import("node:child_process")' has no call signatures.
Когда я создаю код, я получаю то же сообщение
src/main.ts:20:3 - error TS2349: This expression is not callable.
Type 'typeof import("node:child_process")' has no call signatures.
Неважно, какую команду я пытаюсь вызвать spawn(...), я пробовал несколько, всегда одна и та же ошибка.
Как правильно использовать child_process в машинописном тексте?





Вам все еще нужны фигурные скобки, иначе вы импортируете весь пакет как spawn, который нельзя вызвать.
...
import { spawn } from "node:child_process";
...
spawn("ls", ["-lah"]);
Черт, я перерыл весь Интернет и обнаружил, что это такая очевидная вещь. Спасибо
Не делайте импорт по умолчанию. Вместо этого сделайте это.:
import {spawn} from 'child_process'
Поместите спавн в фигурные скобки