# 前言 因為練習Next.js 開發blog 需要安裝 pnpm 紀錄一下 windows 上如何安裝pnpm 後來在[這篇文章](https://stackoverflow.com/questions/75365692/how-to-install-pnpm-on-windows)找到解決方法 參考影片: https://www.youtube.com/watch?v=q5iDjNR1O7Y&ab_channel=GeekyScript # 什麼是 PNPM? pnpm(縮寫為 "pnpm",代表"快速的 npm")是一個用於管理 JavaScript 和Node.js專案依賴的軟體包管理工具。它的功能類似於 Node Package Manager(npm)和Yarn,但有一些不同之處。 以下是 pnpm 的一些主要特點和優勢: 節省磁碟空間: pnpm 使用一個獨特的依賴存儲方式,稱為「硬連結」,它可以減少專案之間的依賴重複,節省磁碟空間。這與 npm 和 Yarn 不同,它們在每個專案中都會複製依賴,佔用更多的磁碟空間。 快速安裝: pnpm 通常比 npm 和 Yarn 安裝依賴更快,因為它能夠更有效地處理依賴的硬連結和緩存。 單一全局安裝: pnpm 僅需要在全局安裝一次,而不是每個專案都需要單獨安裝。這使得安裝和升級 pnpm 更加簡單。 遠程存儲支援: pnpm 可以輕鬆地從不同的來源(例如 npm、Git 存儲庫等)安裝依賴。 易於使用: pnpm 命令與 npm 和 Yarn 類似,因此對於熟悉這些工具的開發人員來說,轉換到 pnpm 通常相對容易。 pnpm 的目標是提供一個更高效、節省資源的包管理工具,並且在開發中的專案中更好地管理依賴。它在某些情況下可以成為替代 npm 或 Yarn 的有力選擇,特別是對於有多個 JavaScript 專案的開發者,可以從 pnpm 的特性中受益。 # 打開CMD執行以下指令 ``` set-ExecutionPolicy RemoteSigned -Scope CurrentUser ``` 以上是一個 PowerShell 命令 set-ExecutionPolicy:這是 用於設置執行策略。 RemoteSigned:這是一個執行策略的值。在這種情況下,它表示允許執行本地(在本機計算機上)簽名過的腳本,但來自遠程位置(例如網絡上的腳本)的腳本需要經過簽名才能執行。這有助於提高安全性,因為它可以防止遠程未經信任的腳本在你的系統上運行。 -Scope CurrentUser:這部分指定了執行策略的作用範圍。在這種情況下,它設置執行策略只對當前使用者(CurrentUser)生效,而不會影響其他使用者。這是一種局部的設置,只影響當前使用者的 PowerShell 會話。 總結起來,這個命令的含義是:將當前使用者的 PowerShell 執行策略設置為 RemoteSigned,這意味著他們可以執行本地簽名過的腳本,但需要簽名的遠程腳本才能運行。這是一種安全的默認策略,可防止未經信任的遠程腳本在系統上執行。 # 執行 Get-ExecutionPolicy ``` Get-ExecutionPolicy ``` Get-ExecutionPolicy 是 PowerShell 中的一個 cmdlet(命令),它用於檢索當前的執行策略。執行策略指定了哪些 PowerShell 腳本可以在系統上執行,以及它們如何被允許執行。當你運行 Get-ExecutionPolicy 命令時,它會返回當前使用者或系統的執行策略設置。 # 查看所有的 Policy 可以執行以下指令 ``` Get-ExecutionPolicy -list ``` 執行策略有不同的級別,包括: Restricted:這是最嚴格的策略,它禁止執行所有腳本,包括本地和遠程腳本。這通常是預設的策略,以確保系統的安全性。 AllSigned:這個策略要求所有腳本都必須經過數位簽名,無論是本地還是遠程的。只有經過簽名的腳本才能執行。 RemoteSigned:這個策略要求遠程腳本必須經過數位簽名,但本地腳本可以自由執行,不需要簽名。 Unrestricted:這個策略允許所有腳本在系統上執行,不需要簽名。這是最不安全的策略,應謹慎使用。 Bypass:這個策略完全禁用執行策略,允許所有腳本自由執行。這是一個非常不安全的設置,應該極少使用,如果需要請謹慎使用 # 安裝 pnpm ``` npm i -g pnpm ``` 詳細 pnpm 使用方式可以參考以下官方文件 https://pnpm.io/motivation
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up