Это немного сложнее, чем кажется.
Вы не можете просто изменить рабочий каталог оболочки, в которой выполняется процесс, не делая предположений о том, какая это оболочка или ОС (я лично использую яблочный скрипт для создания новых вкладок терминала).
Однако мы можем создать новую оболочку!
let child_process = require('child_process');
child_process.spawn(
// With this variable we know we use the same shell as the one that started this process
process.env.SHELL,
{
// Change the cwd
cwd: `${process.cwd()}/products/${product_id}`,
// This makes this process "take over" the terminal
stdio: 'inherit',
// If you want, you can also add more environment variables here, but you can also remove this line
env: { ...process.env, extra_environment: 'some value' },
},
);
Когда вы запускаете это, кажется, что вы cd
в каталог, но на самом деле вы все еще работаете внутри nodejs!