Файл Gulp не может быть загружен

Обновлено: 21.11.2024

Загружает подключаемые модули gulp из зависимостей пакетов и прикрепляет их к объекту по вашему выбору.

Требования к версии узла

Из-за встроенной поддержки синтаксиса ES2015 в более новых версиях Node для этого подключаемого модуля требуется как минимум Node v8. Если вам необходимо сохранить поддержку более старых версий Node, версия 1.6.0 этого подключаемого модуля является последним выпуском, который будет поддерживать версии Node ниже 8.

Установить

Использование

Данный файл package.json имеет некоторые зависимости внутри:

Добавление этого в ваш Gulpfile.js:

Или еще короче:

Приведет к следующему (грубо говоря, плагины загружаются лениво, но на практике вы не заметите никакой разницы):

Затем вы можете использовать подключаемые модули точно так же, как если бы вы запрашивали их вручную, но ссылаясь на них как на plugins.name() , а не просто name() .

Это освобождает вас от необходимости вручную запрашивать каждый подключаемый модуль gulp.

Параметры

Вы можете передать объект параметров, показанных ниже: (значения для ключей установлены по умолчанию):

Несколько мест конфигурации

Несмотря на то, что плагины можно взять из другого места, часто вам может понадобиться расширение из другого пакета, что позволит вам сохранить ваш собственный package.json свободным от дубликатов, но при этом добавить свои собственные плагины, которые необходимы для вашего проекта. . Поскольку параметр конфигурации принимает объект, вы можете объединить несколько местоположений с помощью пакета lodash.merge:

postRequireTransforms (только 1.3+)

Это позволяет преобразовать подключаемый модуль после того, как он потребуется gulp-load-plugins.

Например, один конкретный плагин (скажем, gulp-foo ) может потребовать, чтобы вы вызвали функцию для его настройки перед его использованием. Таким образом, вы получите:

Это немного беспорядочно. Вместо этого вы можете передать объект postRequireTransforms, который позволит вам сделать следующее:

Каждый раз, когда подключаемый модуль загружается, мы проверяем, определено ли преобразование, и если да, то вызываем эту функцию, передавая загруженный подключаемый модуль. Все, что возвращает эта функция, затем используется как значение, возвращаемое gulp-load-plugins.

Для 99 % gulp-плагинов вам не понадобится такое поведение, но для необычного плагина это хороший способ сделать ваш код чище.

Переименование

Начиная с версии 0.8.0 вы можете передавать объект сопоставлений для переименования плагинов. Например, представьте, что вы хотите загрузить плагин gulp-ruby-sass, но хотите называть его просто sass :

Обратите внимание: если вы укажете параметры renameFn с собственной настраиваемой функцией переименования, хотя параметр переименования будет по-прежнему работать, параметры replaceString и camelize будут игнорироваться.

Области действия npm

gulp-load-plugins поставляется с поддержкой области действия npm. По умолчанию подключаемые модули с заданной областью доступны через объект подключаемых модулей, который представляет область. Когда mainScope = false , подключаемые модули доступны на верхнем уровне, как и любые другие подключаемые модули без области действия.

Примечание. MaintenanceScope доступно только в версии 1.4.0 и выше.

Например, если подключаемый модуль @myco/gulp-test-plugin, вы можете получить доступ к подключаемому модулю, как показано в следующем примере:

Отложенная загрузка

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

Переопределить шаблон

В версии 1.4.0 и более ранних настройка параметра шаблона переопределяла встроенный ['gulp-*', 'gulp.*', '@*/gulp*'] . Если overridePattern: false , сконфигурированный шаблон теперь будет расширять встроенное сопоставление.

Например, оба утверждения эквивалентны.

Кредит

Большая заслуга принадлежит @sindresorhus за его плагин load-grunt-plugins. Этот подключаемый модуль почти идентичен, только слегка изменен для работы с Gulp и для предоставления необходимых подключаемых модулей.

В этой статье описывается проблема, из-за которой вы получаете сообщение об ошибке при попытке запустить сценарии в модуле Azure Active Directory для Windows PowerShell.

Исходная версия продукта: Azure Active Directory, Microsoft Intune, Azure Backup, Office 365 User and Domain Management, Office 365 Identity Management
Исходный номер базы знаний: 2411920

Симптомы

При попытке запустить скрипт в модуле Microsoft Azure Active Directory для Windows PowerShell появляется одно из следующих сообщений об ошибке:

Файл C:\my_script.ps1 не может быть загружен. Выполнение сценариев отключено в этой системе. Дополнительные сведения см. в разделе «Помощь о_подписи».

Причина

Эта проблема может возникнуть, если верно одно из следующих условий:

  • Используемая вами версия PowerShell выше 5.1.Модуль Azure Active Directory работает только с PowerShell 3–5.1.
  • Для политики выполнения задано значение "Ограничено". Некоторые командлеты Windows PowerShell не могут выполняться, если политика слишком ограничена.

Разрешение

Чтобы решить эту проблему, выполните следующие действия:

Определите версию PowerShell, запустив $PSVersionTable .

Запустите модуль Azure Active Directory для Windows PowerShell от имени администратора. Для этого нажмите «Пуск», выберите «Все программы», выберите «Windows Azure Active Directory», щелкните правой кнопкой мыши «Модуль Windows Azure Active Directory для Windows PowerShell» и выберите «Запуск от имени администратора».

Установите для политики выполнения значение "Неограниченно". Для этого введите следующий командлет и нажмите Enter:

Запустите нужные командлеты Windows PowerShell.

Установите для политики выполнения значение "Ограничено". Для этого введите следующий командлет и нажмите Enter:

Подробнее

Чтобы обеспечить более безопасное администрирование из командной строки, Windows PowerShell использует "политики выполнения" для управления использованием Windows PowerShell. Политики выполнения определяют ограничения, в соответствии с которыми Windows PowerShell загружает файлы для выполнения и настройки. Windows PowerShell по умолчанию работает в политике ограниченного выполнения. Этот режим является наиболее безопасным. В этом режиме Windows PowerShell работает только как интерактивная оболочка.

При попытке запустить сценарий Powershell (ps1) может возникнуть ошибка. Файл не может быть загружен, так как выполнение сценариев отключено в этой системе. Эта ошибка может появляться в Powershell, а также в ISE или Visual Studio Code (VS Code).

В этом сообщении блога объясняется:

  • почему возникает эта ошибка.
  • как защитить Powershell.
  • как это исправить.

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

Причина

Powershell имеет встроенные функции безопасности. Одним из них является так называемая Политика исполнения. Эта политика может предотвратить выполнение сценариев и может оказаться полезной в определенных ситуациях. Например, в средах с высоким уровнем безопасности, где запуск неизвестных сценариев Powershell может быть рискованным. Чтобы просмотреть текущий общесистемный параметр политики выполнения, введите в Powershell следующее:
Get-ExecutionPolicy

4 уровня безопасности

  • Ограничения: запуск сценариев Powershell невозможен. Это настройка по умолчанию.
  • AllSigned: сценарии можно запускать, но все они должны иметь цифровую подпись. Даже если вы сами написали скрипт на локальном компьютере.
  • RemoteSigned: можно запускать локально написанные сценарии. Но сценарии извне (электронная почта, мгновенные сообщения, Интернет) должны быть подписаны доверенным издателем.
  • Неограниченный: будет выполняться любой сценарий. Независимо от того, кто их создал и подписаны ли они.

Что касается исправлений, я предполагаю, что вы загрузили скрипт. Таким образом, я предоставляю опцию Unrestricted в каждом решении. Но если вы сами написали скрипт на своем текущем компьютере, вам лучше использовать RemoteSigned.

Невозможно загрузить исправления в файл, так как в этой системе отключены запущенные скрипты

Существует несколько способов исправить ошибку «Файл не может быть загружен, так как в этой системе отключены запущенные скрипты». У каждого есть свои плюсы и минусы. Но какой бы вариант вы ни выбрали, он все равно решит вашу проблему.
Как я отметил в 4-х уровнях безопасности, Unrestricted — это всегда решение, но RemoteSigned — более безопасный вариант.
Все исправления не зависят от ОС. Они будут работать на Windows 10, Windows 2016, Windows 2019. И даже на Windows 7.

Установите ExecutionPolicy на компьютере (требуются права администратора)

Чтобы установить ExecutionPolicy для всех пользователей на вашем компьютере:

Примечание. После того как вы настроите политику выполнения, она будет применяться ко всем сеансам Powershell во всех приложениях. Вы используете Visual Studio Code или Powershell ISE? Новая настройка также применяется к этим приложениям!

Установить ExecutionPolicy для пользователя

У вас нет прав администратора на вашем компьютере? Вы по-прежнему можете установить для ExecutionPolicy значение Unrestricted в области действия пользователя. Вот как:

  1. Откройте Powershell.
  2. Введите Set-ExecutionPolicy Unrestricted -Scope CurrentUser и нажмите Enter.
  3. Подтвердите изменение политики выполнения, введя Y и нажав Enter.
  4. Готово! Теперь ваша учетная запись пользователя должна иметь возможность запускать скрипт.

Запуск сеанса Powershell с обходом ExecutionPolicy

Чтобы снизить безопасность Powershell только один раз, вы можете использовать переключатель обхода.Это позволяет вам временно запускать скрипт, сохраняя при этом более строгие настройки для всех остальных сеансов Powershell.

  1. Откройте командную строку.
  2. Введите PowerShell -ExecutionPolicy Bypass и нажмите Enter.
    Powershell загружается внутри командной строки с пониженной безопасностью.
  3. Перейдите к пути к вашему скрипту и запустите его.
  4. После закрытия окна Powershell обход закрывается вместе с ним.

Запустите скрипт в Powershell ISE (или Visual Studio Code)

На самом деле это не запуск скрипта. Вместо этого я бы назвал это идеальным обходным путем для обхода вашей строгой (компании) политики выполнения :)
В Powershell ISE можно открыть скрипт. После этого вы сможете просмотреть код в редакторе. Вместо запуска PS1 сделайте следующее:

  1. выбрать весь код в скрипте.
  2. нажмите F8, чтобы запустить выбранный код.

Таким образом, вам не нужны дополнительные разрешения для выполнения вашей работы.

Просмотреть текущий уровень ExecutionPolicy

Чтобы просмотреть текущую ExecutionPolicy для всей системы, введите:
Get-ExecutionPolicy

Но есть и другие области действия ExecutionPolicy. Тип:
Get-ExecutionPolicy -list

  • Машинная политика (определяется вашим системным администратором).
  • UserPolicy (также определяется вашим системным администратором)
  • Процесс (обход, при запуске от имени PowerShell -ExecutionPolicy Bypass)
  • CurrentUser (если Executionpolicy был установлен с параметром -Scope CurrentUser)
  • LocalMachine (если Executionpolicy была задана без дополнительных аргументов)

Назад в 2008 год

В 2008 году я написал аналогичную запись в блоге о политике выполнения в Powershell. В Powershell v2 код ошибки был другим:
Файл не может быть загружен, так как при этой системной ошибке отключено выполнение скриптов
Powershell v3 и более поздние версии имели новые возможности. И ошибка была изменена на «Файл не может быть загружен, так как в этой системе отключены запущенные скрипты».

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

Оглавление

Ошибка отсутствия цифровой подписи

Запустите PowerShell от имени администратора. Измените каталог на папку c:\scripts. Затем запустите загруженный сценарий PowerShell. Вы получаете сообщение об ошибке.

Как исправить ошибку отсутствия цифровой подписи?

Во-первых, начните с просмотра файла сценария Windows PowerShell. Найдя сценарий PowerShell, щелкните файл правой кнопкой мыши и выберите "Свойства".

Оставайтесь на вкладке "Общие", а внизу вы увидите параметр "Безопасность". Он показывает, что этот файл получен с другого компьютера и может быть заблокирован в целях защиты этого компьютера. Другими словами, вы не можете запустить скрипт из соображений безопасности. Вы должны доверять ему, прежде чем сможете его использовать.

Установите флажок Разблокировать и нажмите OK.

Теперь перезапустите сценарий PowerShell. Он должен работать так, как ожидалось, без ошибок. Например, сценарий не может быть загружен и что сценарий не имеет цифровой подписи.

Исправить ошибку отсутствия цифровой подписи с помощью PowerShell

Если вы хотите разблокировать файл с помощью PowerShell, используйте командлет Unblock-File. В этом примере мы меняем путь к папке со скриптами. После этого разблокируем скрипт и запускаем скрипт.

Заключение

Вы узнали, как исправить ошибку отсутствия цифровой подписи при запуске скрипта PowerShell. Разблокируйте файл через Проводник или PowerShell. Это небольшое исправление, но важное. Какой сценарий PowerShell вы хотели запустить и выдали эту ошибку? Нам нужно, чтобы наши сценарии PowerShell работали правильно!

Понравилась ли вам эта статья? Вам также может понравиться PowerShell для удаления кавычек из текстового файла. Не забудьте подписаться на нас и поделиться этой статьей.

АЛИ ТАДЖРАН

Что читают другие

Как сохранить отправленные элементы в папке отправленных элементов общего почтового ящика в Office 365 (Exchange…

Вы заполнили файл Excel и сохранили его в файл CSV. Excel сохранил…

Как подсчитывать объекты Active Directory и зачем нам нужен подсчет объектов AD?…

Читайте также: