Se eu fizer:
pnpm run typeorm migration:generate -- -d ./src/config/typeorm.ts ./src/migrations/
Recebo um erro informando que não foram passados argumentos suficientes para o script.
Not enough non-option arguments: got 0, need at least 1
Quando executo a mesma coisa com nom, gosto:
npm run typeorm migration:generate -- -d ./src/config/typeorm.ts ./src/migrations/
Eu não recebo nenhum erro.
Qual é a diferença na passagem de argumentos entre esses dois comandos?
Quando você executa um comando usando npm, a sintaxe para passar argumentos depois de -- é bem compreendida. O -- é um sinal para o npm de que os argumentos a seguir devem ser passados para o comando que está sendo executado, em vez de serem interpretados como opções do npm.
Por outro lado, o pnpm não possui suporte integrado para o separador -- da mesma forma. Em vez disso, ele passa argumentos automaticamente para o script executado. Portanto, ao usar o pnpm, talvez você não precise do separador -- e os argumentos podem ser fornecidos diretamente após o script npm.
No seu caso, usando pnpm:
Sem o separador --, o pnpm deve interpretar corretamente os argumentos do script. Se você enfrentar problemas com a combinação específica de argumentos, talvez seja necessário ajustar a forma como o pnpm lida com esses argumentos ou consultar a documentação do pnpm para obter nuances específicas.