Como corrigir o erro - nodemon.ps1 não pode ser carregado porque a execução de scripts está desabilitada neste sistema (sem risco de segurança)?

Aug 15 2020

Erro no terminal: nodemon.ps1 não pode ser carregado porque a execução de scripts está desabilitada neste sistema. Para obter mais informações, consulte about_Execution_Policies em https: /go.microsoft.com/fwlink/? LinkID = 135170.

Eu tenho uma solução para corrigir o problema desta forma

  1. Abra o Windows PowerShell com Executar como Administrador
  2. Execute este comando: Set-ExecutionPolicy Unrestricted

Isso resolve o problema, mas desta forma o sistema mostra Aviso de risco de segurança. Minha pergunta: existe alguma outra maneira de resolver isso sem risco de segurança? O objetivo é usar o nodemon.

Respostas

22 derekbaker783 Aug 15 2020 at 16:56

Eu recomendo usar RemoteSignedao invés de Unrestricted, e limitar a política para o usuário atual, se possível.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

RemoteSigned : "A política de execução padrão para computadores servidores Windows."



Fora isso, eu não me preocuparia muito com isso, pois não se destina a ser um mecanismo de segurança. Veja esta citação dos documentos:

"A política de execução não é um sistema de segurança que restringe as ações do usuário. Por exemplo, os usuários podem facilmente contornar uma política digitando o conteúdo do script na linha de comando quando não podem executar um script. Em vez disso, a política de execução ajuda os usuários a definir o básico regras e os impede de violá-los acidentalmente. "

8 web_walkerX Aug 15 2020 at 22:41

Não há nenhum risco de segurança associado à permissão de scripts assinados remotos para serem executados em sua máquina local. Basicamente, significa que você pode executar scripts locais não assinados, ou seja, scripts escritos por você, enquanto scripts de uma fonte remota (nodemon neste caso) devem ser assinados por uma autoridade confiável.

PS: Se você estiver no Windows, basta acessar as configurações >> atualização e segurança >> para desenvolvedores >> marque a caixa ao lado change execution policy to allow local powershell scripts to run without signing

1 stp_ Dec 29 2020 at 13:32

Para quem não sabe como resolver esse erro usando o Windows PowerShell

  1. Abra PowerShell (Executar como Administrador)

  2. Verifique a política de execução atual usando este comando

    Get-ExecutionPolicy Você deve obter 'Restricted'

  3. Execute este comando para torná-lo 'Irrestrito'

    Set-ExecutionPolicy Unrestricted

  4. Verifique novamente se a política de execução foi alterada executando este comando Get-ExecutionPolicy Você deve obter 'Unrestricted'

  5. Agora tente executar o nodemon em seu projeto nodemon 'filename.js'

Espero que isso seja útil

AmanSingh Oct 20 2020 at 20:27

Este comando pode ajudar

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
kmgt Dec 22 2020 at 16:36

Ao usar o npm, eu recomendo fazer a ponte do comando nodemon na scriptsseção e deixar as configurações de segurança como estão.

package.json:

{
    "scripts": {
        "hmr": "nodemon index.js",
        "nodemon": "npm run hmr",
        "start": "node index.js"
    },
    "dependencies": {}
}

Basta executar o npm run nodemonque irá executar a hmrlinha nos bastidores.