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

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

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

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

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


person TradeCoder    schedule 15.08.2020    source источник
comment
можете ли вы предоставить более подробную информацию?   -  person jaibalaji    schedule 15.08.2020
comment
Пожалуйста, прочтите файлы справки на Executpm Policies. About_Execution_Policies - PowerShell | Microsoft Docs В нормальном режиме работы нет особых причин для неограниченного использования EP. RemoteSigned - значение по умолчанию. Ваш хост должен быть установлен как наиболее ограниченный для вас или вашей организации. Вы можете запустить сеанс / скрипт PowerShell, используя другой EP. EP не является границей безопасности.   -  person postanote    schedule 16.08.2020


Ответы (11)


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

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

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



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

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

person derekbaker783    schedule 15.08.2020
comment
Коротко и правильно. Вы, сэр, получите голос "за"! - person Goku; 11.02.2021

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

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

person web_walkerX    schedule 15.08.2020

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

  1. Откройте PowerShell (запуск от имени администратора)
  2. Проверьте текущую политику выполнения с помощью этой команды
    Get-ExecutionPolicy
    # You should get 'Restricted'
  1. Запустите эту команду, чтобы сделать ее "Неограниченной"
    Set-ExecutionPolicy Unrestricted
  1. Еще раз проверьте, изменилась ли политика выполнения, выполнив эту команду
    Get-ExecutionPolicy
    # You should get 'Unrestricted'
  1. Теперь попробуйте запустить nodemon в своем проекте
    nodemon 'filename.js'

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

person SandaliTP    schedule 29.12.2020
comment
Установка политики выполнения на Unrestricted в этом случае не нужна и неоптимальна, и это своего рода пеший ход. - person derekbaker783; 30.04.2021

Шаг 1. Перейдите в это место - ›Файл C: \ Users \ Dell \ AppData \ Roaming \ npm
Шаг 2. Удалите файл nodemon.ps1 и запустите команду.

person Dinesh Chavda    schedule 22.03.2021

У меня есть лучшее решение, просто перейдите в папку, в которой находится nodemon.ps1 (ошибочный путь), и удалите nodemon.ps1 файл.

теперь зайдите в терминал и запустите nodemon -v, если у вас есть версия, значит проблема решена.

person ADARSH MORADIYA    schedule 27.01.2021

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

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
person Aman Singh    schedule 20.10.2020
comment
Это сработало для меня, и подача работает с localhost: 5000 - person Salman Aziz; 24.06.2021

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

package.json:

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

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

person kmgt    schedule 22.12.2020

Этот cmd работает правильно.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

person Sanket Bendale    schedule 17.05.2021
comment
Этот ответ не добавляет ничего нового - person derekbaker783; 19.05.2021

В windows 10.

Указан неверный путь в административных и системных переменных для npm. Перейдите в Переменные среды и измените этот путь в PATH переменных.

Шаг 1:

C:\Program Files\nodejs\node_modules\npm to C:\Users\Administrator\AppData\Roaming\npm

Шаг 2:

Затем перезапустите мою систему.

Работает нормально.

person Arunkumar Ramasamy    schedule 04.06.2021
comment
Это не отвечает на вопрос. Вообще. - person derekbaker783; 08.07.2021

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

Если кто-то сталкивается с этой проблемой ... поэтому я считаю, что просто зайдите в файл и удалите файл nodemon.ps1, а затем попробуйте использовать nodemon filename

person Niraj Kumar    schedule 20.06.2021
comment
Это не добавляет ничего нового. См. Ответ Адарша (который предшествовал вашему). - person derekbaker783; 08.07.2021

Я решаю свою проблему с помощью следующей команды.

= ›Запустите PowerShell от имени администратора

= ›Выполните следующую команду

get-ExecutionPolicy

= ›Если ограничено; выполните следующую команду

set-ExecutionPolicy Unrestricted 

= ›И установить для всех

= ›Еще раз проверяем по фолл. команда

get-ExecutionPolicy

это станет неограниченным, и проблема будет решена

person Ali Haider    schedule 07.07.2021
comment
Этот ответ не добавляет ничего нового (см. Ответы, предшествующие вашему). - person derekbaker783; 08.07.2021