Serverless Framework sls Conflicts with Powershell sls (Select-string)

For future visitors - in current version (if serverless is installed by npm/yarn) ^1.61 there is a secondary shortcut option:

slss

and that shortcut works flawlessly in Powershell. Imo it's the simplest way to avoid problems with Select-String alias collision and do not require any change in Powershell session or config.

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

If serverless is installed by chocolatey (as mentioned by @Nick Cox in comment) slss approach will fail, and you can use approach suggested by him - sls.exe


It seems that PowerShell has a command/cmdlet called Select-String which has an alias of sls. The PowerShell alias sls seems to take precedence over the node.js serverless command of sls.

One way to remove the PowerShell sls alias is by running the following in PowerShell

Remove-Item alias:sls

This change only applies to the current PowerShell session.

To permanently the sls PowerShell alias, you can change Microsoft.PowerShell_profile.ps1 file.

From PowerShell open your profile page in Notepad with the following command:

notepad $profile

Add the following to the file and save.

remove-item alias:sls

The profile can be reloaded by running the following from Powershell

. $profile

In my file, you will see that I have removed the aliases of curl and sls.

Change PowerShell Profile

Now I see what I expect when entering sls in PowerShell. enter image description here

How do I permanently remove a default Powershell alias?

--- Update ----

A more simple option is to use the command "serverless" instead of "sls".