У меня есть эта команда, которая выводит все имена папок всех пакетов в проекте lerna.Замена Bash внутри lerna exec не работает
lerna exec -- node -e 'console.log(path.basename(process.cwd()))'
У меня есть эта команда, которая должна заменить имя имя каждого Lerna пакета в пределах package.json с именем папки. Он использует замену.
lerna exec -- json -I -f ./package.json -e 'this.name = "@reggi/'`node -e 'console.log(path.basename(__dirname))'`'"'
Проблема заключается в том, что он называет пакеты именем папки, содержащей весь пакет lerna.
Это делает то же самое. Он снова и снова регистрирует имя родительского пакета lerna.
lerna exec -- echo `node -e 'console.log(path.basename(process.cwd()))'`
Bash замена не позволяет команду на правой стороне exec
бежать в его собственном процессе, она компилируется, прежде чем получить шанс, чтобы запустить его.
Как я могу использовать подстановку в bash и не сохранять вывод аргумента, чтобы позволить runtime обрабатывать новое значение подстановки?