我使用以下NPM命令安装了无服务器框架
npm install -g serverless
当我尝试在Powershell中运行无服务器命令sls
时,我得到一个奇怪的结果,提到" cmdlet Select-string"。
sls --version
有人可以帮我解决这个问题吗?
答案 0 :(得分:9)
PowerShell似乎有一个名为Select-String的命令/ cmdlet,其别名为sls。 PowerShell别名sls似乎优先于sl的node.js无服务器命令。
删除PowerShell sls别名的一种方法是在PowerShell中运行以下命令
Remove-Item alias:sls
此更改仅适用于当前的PowerShell会话。
要永久保存sls PowerShell别名,您可以更改Microsoft.PowerShell_profile.ps1文件。
从PowerShell中,使用以下命令在记事本中打开您的个人资料页面:
notepad $profile
将以下内容添加到文件中并保存。
remove-item alias:sls
可以通过从Powershell
运行以下内容来重新加载配置文件. $profile
在我的文件中,您会看到我删除了curl和sls的别名。
How do I permanently remove a default Powershell alias?
---更新----
更简单的选择是使用命令"无服务器"而不是" sls"。
答案 1 :(得分:6)
对于将来的访问者-在当前版本中(如果serverless
已安装npm/yarn
)^1.61
有一个辅助快捷方式选项:
slss
,该快捷方式在Powershell中可完美运行。 Imo是避免Select-String
别名冲突问题并且不需要在Powershell会话或配置中进行任何更改的最简单方法。
PS C:\htdocs\serverless> slss -v
Framework Core: 1.61.1
Plugin: 3.2.7
SDK: 2.2.1
Components Core: 1.1.2
Components CLI: 1.4.0
如果serverless
安装了chocolatey
(如@Nick Cox在评论中提到的那样),则slss
方法将失败,您可以使用他建议的方法-sls.exe
答案 2 :(得分:1)
我能够通过使用 Chocolaty 解决这个问题。
对于窗口使用 npm install serverless
而不是 choco install serverless
,
参考:https://www.serverless.com/framework/docs/getting-started/