Proto
För att hantera verktyg och beroenden i våra projekt använder vi proto.
Proto gör det enkelt att installera och hantera olika verktyg som Node.js, npm, yarn, pnpm och många fler.
Vi använder den främst för att hantera Node.js och dess pakethanterare, men man kan använda det för att hantera andra verktyg också.
https://moonrepo.dev/docs/proto
Valet av proto är baserat på denna genomgång där man jämfört olika alternativ för att hantera verktyg och beroenden i JavaScript-projekt. https://github.com/TheJaredWilcurt/blog/discussions/40
Vi har även lagt in de tillägg till protos inställningar som förespråkas, detta för att slå av telemetri och för att automatiskt installera verktyg:
https://github.com/TheJaredWilcurt/blog/discussions/41
Installation
Section titled “Installation”Finns stöd för Windows, Linux, macOS och WSL, följ instruktionerna nedan.
- Öppna PowerShell som admin
Starta Terminal appen som admin och öppna en ny PowerShell instans, eller öppna PowerShell direkt.
- Säkerställ att en PowerShell profil finns
Kör följande kommando i PowerShell för att kontrollera om profilen finns, annars skapas den:
Terminal window if (Test-Path $profile) { "Profile exists at $profile" } else { New-Item -ItemType Directory -Path (Split-Path -Parent $profile) -Force | Out-Null; New-Item -ItemType File -Path $profile -Force | Out-Null } - Skapa konfigurationsfil för proto
Skapa filen
C:\Users\{användarnamn}\.proto\.prototoolsoch lägg i följande innehåll.[settings]telemetry = falseauto-install = trueDu kan skapa filen manuellt eller köra följande kommando i PowerShell:
Terminal window New-Item -Path "~/.proto" -ItemType Directory -Force | Out-Null; @'[settings]telemetry = falseauto-install = true'@ | Set-Content -Path "~/.proto/.prototools" - Installera proto
Installera proto enligt instruktionerna här:
https://moonrepo.dev/docs/proto/install#windowsTerminal window irm https://moonrepo.dev/install/proto.ps1 | iex - Installera Node.js, npm och yarn
Sätt globalt vilka verktyg du vill använda och installera sedan dessa.
Kan behöva starta en ny PowerShell eller ladda om din profil med& $profileför att få tillgång till proto kommandot.Terminal window proto pin node lts && proto pin npm latest && proto pin yarn 1 && proto install - Lägg till anpassning av proto anrop i din PowerShell profil
Vi har en anpassning av proto anropet, denna ser till att när du kör
proto pinellerproto unpini en katalog med enpackage.jsonså kommer den att lägga till--resolve --tool-nativeeller--tool-nativeflaggorna automatiskt, vilket gör att proto kommer att använda devEngines fältet ipackage.json.Lägg till följande funktion längst ner i din PowerShell profil:
Terminal window function proto {param([Parameter(ValueFromRemainingArguments = $true)][string[]]$Args)$protoCmd = (Get-Command proto -CommandType Application).Sourceif ($Args.Count -gt 0 -and $Args[0] -eq "pin" -and (Test-Path "package.json")) {& $protoCmd @Args --resolve --tool-native}elseif ($Args.Count -gt 0 -and $Args[0] -eq "unpin" -and (Test-Path "package.json")) {& $protoCmd @Args --tool-native}else {& $protoCmd @Args}}Du kan öppna din PowerShell profil i Notepad med:
Terminal window notepad.exe $profileAlternativt kan du köra följande kommando i PowerShell för att automatiskt lägga till funktionen i din profil:
Terminal window @'function proto {param([Parameter(ValueFromRemainingArguments = $true)][string[]]$Args)$protoCmd = (Get-Command proto -CommandType Application).Sourceif ($Args.Count -gt 0 -and $Args[0] -eq "pin" -and (Test-Path "package.json")) {& $protoCmd @Args --resolve --tool-native}elseif ($Args.Count -gt 0 -and $Args[0] -eq "unpin" -and (Test-Path "package.json")) {& $protoCmd @Args --tool-native}else {& $protoCmd @Args}}'@ | Add-Content -Path $profileLadda om profilen för att aktivera funktionen:
Terminal window & $profile
- Öppna en terminal
Starta en terminal (Bash, Zsh, etc).
- Skapa konfigurationsfil för proto
Terminal window mkdir -p ~/.protocat > ~/.proto/.prototools <<'EOF'[settings]telemetry = falseauto-install = trueEOF - Installera proto
Installera proto enligt instruktionerna här:
https://moonrepo.dev/docs/proto/install#linux-macos-wslTerminal window bash <(curl -fsSL https://moonrepo.dev/install/proto.sh) - Installera Node.js, npm och yarn
Starta en ny terminal eller ladda om din bash konfiguration med
source ~/.bashrc(eller motsvarande för ditt shell) sätt globalt vilka verktyg du vill använda och installera sedan dessa.Terminal window proto pin node lts && proto pin npm latest && proto pin yarn 1 && proto install - Lägg till anpassning av proto anrop i din shell-profil
Lägg till följande längst ner i din profil, denna funktion ser till att när du kör
proto pinellerproto unpini en katalog med enpackage.jsonså kommer den att lägga till--resolve --tool-nativeeller--tool-nativeflaggorna automatiskt, vilket gör att proto kommer att använda devEngines.Terminal window proto() {if [[ "$1" == "pin" ]] && [[ -f "package.json" ]]; thencommand proto "$@" --resolve --tool-nativeelif [[ "$1" == "unpin" ]] && [[ -f "package.json" ]]; thencommand proto "$@" --tool-nativeelsecommand proto "$@"fi}För att automatiskt lägga till detta i din profil, kör följande kommando i terminalen:
Terminal window cat <<'EOF' >> ~/.bashrcproto() {if [[ "$1" == "pin" ]] && [[ -f "package.json" ]]; thencommand proto "$@" --resolve --tool-nativeelif [[ "$1" == "unpin" ]] && [[ -f "package.json" ]]; thencommand proto "$@" --tool-nativeelsecommand proto "$@"fi}EOFLadda om profilen för att aktivera funktionen:
Terminal window source ~/.bashrc # eller source ~/.zshrc