无服务器框架sls与Powershell sls冲突(选择字符串)

时间:2017-04-09 03:53:54

标签: node.js powershell serverless-framework

我使用以下NPM命令安装了无服务器框架

npm install -g serverless

当我尝试在Powershell中运行无服务器命令sls时,我得到一个奇怪的结果,提到" cmdlet Select-string"。

sls --version

enter image description here

有人可以帮我解决这个问题吗?

3 个答案:

答案 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的别名。

Change PowerShell Profile

现在我在PowerShell中输入sls时会看到我的期望。 enter image description here

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/