Как исправить ошибку - nodemon.ps1 не может быть загружен, потому что в этой системе отключены запускаемые скрипты (без риска для безопасности)?

Aug 15 2020

Ошибка на терминале: nodemon.ps1 не может быть загружен, поскольку в этой системе отключены запускаемые скрипты. Дополнительные сведения см. В разделе about_Execution_Policies по адресу https: /go.microsoft.com/fwlink/? LinkID = 135170.

У меня есть решение, чтобы исправить проблему таким способом

  1. Откройте Windows PowerShell с запуском от имени администратора
  2. Выполните эту команду: Set-ExecutionPolicy Unrestricted

Это решает проблему, но в этом случае система показывает предупреждение о риске безопасности. Мой вопрос: есть ли другой способ решить эту проблему без риска для безопасности? Цель - использовать nodemon.

Ответы

22 derekbaker783 Aug 15 2020 at 16:56

Я бы порекомендовал использовать RemoteSignedвместо Unrestrictedполитики и по возможности ограничить политику для текущего пользователя.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

RemoteSigned : «Политика выполнения по умолчанию для серверов Windows».



В остальном я бы не стал особо беспокоиться об этом, поскольку он не предназначен для использования в качестве механизма безопасности. См. Эту цитату из документов:

«Политика выполнения - это не система безопасности, которая ограничивает действия пользователя. Например, пользователи могут легко обойти политику, введя содержимое сценария в командной строке, когда они не могут запустить сценарий. Вместо этого политика выполнения помогает пользователям установить базовые правил и предотвращает их непреднамеренное нарушение ".

8 web_walkerX Aug 15 2020 at 22:41

Нет никакого риска для безопасности, связанного с разрешением запускать удаленно подписанные скрипты на вашем локальном компьютере. Это в основном означает, что вы можете выполнять локальные неподписанные сценарии, то есть сценарии, написанные вами, в то время как сценарии из удаленного источника (в данном случае nodemon) должны быть подписаны доверенным лицом.

PS: Если вы используете Windows, вы можете просто перейти в настройки >> обновление и безопасность >> для разработчиков >> установите флажок рядом change execution policy to allow local powershell scripts to run without signing

1 stp_ Dec 29 2020 at 13:32

Для тех, кто не знает, как решить эту ошибку с помощью Windows PowerShell.

  1. Откройте PowerShell (запуск от имени администратора)

  2. Проверьте текущую политику выполнения с помощью этой команды

    Get-ExecutionPolicy. Вы должны получить "Ограничено"

  3. Запустите эту команду, чтобы сделать ее "Неограниченной"

    Set-ExecutionPolicy Unrestricted

  4. Еще раз проверьте, изменилась ли политика выполнения, выполнив эту команду Get-ExecutionPolicy. Вы должны получить "Unrestricted"

  5. Теперь попробуйте запустить nodemon в вашем проекте nodemon 'filename.js'

Надеюсь, это будет полезно

AmanSingh Oct 20 2020 at 20:27

Эта команда может помочь

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

При использовании npm я рекомендую объединить команду nodemon в scriptsразделе и оставить настройки безопасности как есть.

package.json:

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

Просто выполните, npm run nodemonчто запустит hmrлинию за кулисами.