Я установил модули узлов с помощью npm install, затем попытался выполнить gulp sass-watch в командной строке. После этого я получил ответ ниже.
[18:18:32] Requiring external module babel-register
fs.js:27
const { Math, Object, Reflect } = primordials;
^
ReferenceError: primordials is not defined
Пробовал это перед глотком сасс-часы
npm -g install gulp-cli
webshot
пакет узла. Я подозреваю, что они должны обновить что-то на своем конце, прежде чем я смогу перейти к Node v12.v12.1.0
и Gulp,gulp@4.0.2
но он не работаетv10.x
и глоткомv3.x
, затем волшебство довелосьМы столкнулись с той же проблемой при обновлении устаревшего проекта в зависимости от
gulp@3.9.1
Node.js 12.Эти исправления позволяют использовать Node.js 12 с
gulp@3.9.1
переопределениемgraceful-fs
версии4.2.3
.Если ваш проект активно не разрабатывается и вы используете npm
Создайте
npm-shrinkwrap.json
файл, содержащий это:Зафиксируйте этот
npm-shrinkwrap.json
файл. И затем выполните,npm install
который обновитnpm-shrinkwrap.json
файл.К сожалению, это решение больше не работает, если вы
npm install
снова. Смотрите другие решения ниже.Если ваш проект находится в активной разработке и вы используете Yarn v1
Yarn v1 поддерживает преобразование пакета в определенную версию . Вам необходимо добавить
resolutions
раздел в вашpackage.json
:Спасибо @jazd за этот способ решить проблему.
Если ваш проект находится в активной разработке и вы используете npm
Используя
npm-force-resolutions
в качестве сценария предварительной установки, вы можете получить аналогичный результат, как с Yarn v1. Вам нужно изменить ваш package.json следующим образом:npm-force-resolutions
перед изменениемpackage-lock.json
файла изменитсяgraceful-fs
на желаемую версиюinstall
.Если вы используете пользовательский
.npmrc
файл в своем проекте, и он содержит прокси-сервер или пользовательский реестр, вам нужно перейтиnpx npm-force-resolutions
на него,npx --userconfig .npmrc npm-force-resolutions
посколькуnpx
на данный момент.npmrc
файл текущей папки по умолчанию не используется.Происхождение проблемы
Эта проблема связана с тем, что
gulp@3.9.1
зависит от того,graceful-fs@^3.0.0
какойfs
модуль monkeypatches Node.js.Раньше он работал с Node.js до версии 11.15 (которая является версией из ветки разработки и не должна использоваться в производстве).
graceful-fs@^4.0.0
больше не поддерживает Monkeypatch Node.jsfs
, что делает его совместимым с Node.js> 11.15.Обратите внимание, что это не постоянное решение, но оно помогает, когда у вас нет времени на обновление
gulp@^4.0.0
.источник
npm install
для регенерацииpackage-lock.json
илиnpm-shrinkwrap.json
, кажется, не удалось заблокировать эти зависимости. После перезапускаnpm install --no-save
сгенерированный по-package-lock.json
прежнему указывает npm для установки отсутствующих зависимостей.Используйте следующие команды и установите узел v11.15.0 :
будет решать
По рекомендации @Terje Norderhaug @Tom Corelis отвечает.
источник
Исправить это за 1 минуту:
Просто следуйте этим шагам . Я на Windows 10, и это отлично сработало для меня!
package.json
создайтеnpm-shrinkwrap.json
файл со следующим содержимым:Запустите
npm install
, и не волнуйтесь, он будет обновлятьсяnpm-shrinkwrap.json
с кучей контента.Запустите,
gulp
чтобы начать проект.источник
Используйте следующие команды для установки
node v11.15.0
иgulp v3.9.1
:Решим эту проблему:
источник
Использование NVM для управления используемой версией узла, выполнение следующих команд помогло мне:
источник
10
вместо кодового имени.Gulp 3.9.1 не работает с Node v12.xx, и если вы обновитесь до Gulp 4.0.2, вам придется полностью изменить gulpfile.js с новым синтаксисом (Series & Parallels). Поэтому лучше всего перейти на Node V 11.xx, 11.15.0 работал для меня нормально. Просто используя следующий код в терминале:
Ура!
источник
была такая же ошибка и , наконец , исправить , что при обновлении всех пакетов , а затем упомянул ту же версию узла двигателя и НПМ версию в
package.json
как в моей локальной рабочей системы.я получал эту ошибку при развертывании на героку.
для дополнительной проверки поддержки героку
источник
Понижение до стабильного узла исправило эту проблему для меня, как это произошло после того, как я обновился до узла 12
sudo n 10.16.0
источник
n
сначала установили с: 'npm install -g n'TL: DR
Gulp
3.*
не работает на узле12.*
или выше. Вы должны понизить Node или обновить Gulp.Как уже упоминали другие, Gulp
3.*
не поддерживается на Node12
или выше, поэтому вам придется понизить версию своего Node до11.*
или ниже, ИЛИ обновить Gulp до4.0
.В конечном счете, лучший вариант зависит от того, сколько у вас есть времени, поскольку обновление Gulp дает преимущества более чистых файлов gulp и встроенного контроля над выполнением задач, выполняемых последовательно или параллельно , но также полагается на то, что вы переписываете свой gulpfile в новый синтаксис, и может (читай: вероятно будет - см. конец этого комментария) может вызвать конфликты с некоторыми зависимостями.
Понижение Узла
Это самый простой и быстрый вариант. Особенно, если вы используете n или nvm , поскольку они позволяют очень быстро установить и переключаться между версиями Node.
Установка версии Node на N
Установка версии узла на NVM
После того, как вы это сделали, вам может понадобиться перестроить ваши зависимости npm или, в качестве альтернативы, удалить и вашу
node_modules
папку, и вашpackage-lock.json
файл, и переустановить ваши зависимости. Хотя, если вы просто возвращаетесь к уже существующей версии Node, у вас, вероятно, все будет хорошо.Обновление Gulp
Как упоминалось выше, это более трудоемкая задача, но она может принести выгоды в долгосрочной перспективе. Например, Node
12
теперь представил встроенную поддержку модулей ES (за экспериментальным флагом) и полную поддержку в Node13
.Возможно, вам придется обновить Node, чтобы использовать это, заставляя вас обновить Gulp. Или вы можете просто захотеть воспользоваться преимуществами Gulp 4, так как он предлагает лучший и более эффективный контроль над задачами написания.
Об этом уже есть ряд статей, поэтому я не буду более подробно останавливаться на деталях, но повторюсь - это не простая работа . В зависимости от размера вашего проекта, может потребоваться заметное переписывание, и у вас могут быть зависимости, которые нарушаются. Если у вас не хватает времени, вы должны просто понизить рейтинг узла, хотя бы временно.
Но у меня уже есть Gulp 4, и он все еще не работает!
Если, как и я, вы уже используете Gulp 4+ (я использовал Gulp
4.0.2
, изначально на Node 10) и недавно обновили (я обновился доNode 13.8.0
), если вы все еще получаете проблему, это может быть потому, что зависимость зависит от старая версия Gulp, и это попадает в конвейер.В моем случае
gulp-combine-mq
была зависимость с использованием Gulp3.9.*
. Отключение этой задачи в моем gulpfile позволило Gulp запустить снова.Если это произойдет, у вас есть несколько вариантов: вы можете,
Само собой разумеется, если у вас есть несколько плагинов, которые используют более старую версию Gulp - особенно, если эти плагины жизненно важны для вашего приложения - это то, где может быть огромный дополнительный промежуток времени, потраченный на обновление Gulp (отсюда и предупреждения выше).
Если это произойдет, лучше всего понизить Node, по крайней мере, до тех пор, пока не будут выпущены патчи.
источник
Эта ошибка вызвана новой версией Node (12) и старой версией gulp (менее 4).
Понижение версии Node и других зависимостей не рекомендуется. Я решил эту проблему, обновив
package.json
файл, загружающий последнюю версию всех зависимостей. Для этого я используюnpm-check-updates
. Это модуль, который обновляетpackage.json
последнюю версию всех зависимостей.Ссылка : https://www.npmjs.com/package/npm-check-updates
В большинстве случаев нам придется обновить
gulpfile.js
также, как показано ниже:Ссылка : https://fettblog.eu/gulp-4-parallel-and-series/#migration
Перед:
После:
источник
Я получал эту ошибку на Windows 10. Оказалось, что поврежденный перемещаемый профиль.
Удаление
C:\Users\{user}\AppData\Roaming\npm
папки устранило мою проблему.источник
Просто следуйте этим шагам. Он отлично работал при многократной установке npm, установке любых других модулей или даже публикации проекта в артефакте.
В том же каталоге, где у вас есть package.json, создайте файл npm-shrinkwrap.json со следующим содержимым:
Запустите npm install, и не беспокойтесь, он обновит npm-shrinkwrap.json кучей контента. Давайте избавимся от этих обновлений, обновив опции скриптов package.json .
Теперь вы можете запустить npm install и ваш npm-shrinkwrap.json останется без изменений и будет работать вечно.
источник
Это может произойти поздно, но для тех, кто по-прежнему заинтересован в сохранении Node v12 при использовании последней версии gulp ^ 4.0, выполните следующие действия:
Обновите интерфейс командной строки (только для предосторожности), используя:
Добавьте / обновите
gulp
нижний раздел зависимостей вашего package.jsonУдалить свой
package-lock.json
файлУдалить вашу
node_modules
папкуНаконец, запустите
npm i
для обновления и воссоздания новой папки node_modules и файла package-lock.json с правильными параметрами для Gulp ^ 4.0Примечание Gulp.js 4.0 вводит
series()
иparallel()
методы , чтобы объединить задачи вместо методов массивов , используемых в Глоток 3, и поэтому вы можете или не может возникнуть ошибка в вашем старомgulpfile.js
скрипте.Чтобы узнать больше о применении этих новых функций, этот сайт действительно сделал это правильно: https://www.sitepoint.com/how-to-migrate-to-gulp-4/
( Если это поможет, пожалуйста, оставьте стук вверх )
источник
gulp-cli
? Я следовал твоим шагам и заставил все работать изначально; но затем я удалилgulp-cli
(так как я не видел, где это использовалось), и все все еще работало. Тем не менее, спасибо за ответ, потому что я снова работаю с nodev12.9.1
и Gulp4.0.2
!gulp-cli
утилита командной строки Его гарантирует правильная установка глотка Как вы можете увидеть в установке глотка шагов здесь: gulpjs.com/docs/en/getting-started/quick-startЯ исправил эту проблему в Windows 10, удалив узел из раздела «Установка и удаление программ» -> Node.js.
Затем я установил версию 11.15.0 с https://nodejs.org/download/release/v11.15.0/
Выберите node-v11.15.0-x64.msi, если у вас работает Windows 64bit.
источник
Gulp создает проблемы с Nodejs версии 11 и выше. Удалите текущую версию узла и переустановите v10.15.1, здесь ссылка для этой версии. Это помогает мне и решит вашу проблему.
https://nodejs.org/download/release/v10.15.1/
источник
Я столкнулся с той же проблемой. Что я пытался и работал для меня:
Проверьте версию NODE и GULP (комбинация узла v12 и gulp меньше чем v4 не работает)
Я понижаю версию NPM:
Он работал нормально, а затем просто следуйте инструкциям вашей консоли.
источник
Обновите до 4.0.1 и убедитесь, что мигрировали https://fettblog.eu/gulp-4-parallel-and-series/#migration
источник
Для тех, кто использует
yarn
.источник
Для тех, кто имеет ту же ошибку по той же причине в ADOS CI Build:
Этот вопрос был первым, что я нашел, когда искал помощи. У меня есть конвейер сборки ADOS CI, где для установки Node используется первая задача установки инструмента Node.js. Затем задача npm используется для установки gulp (npm install -g gulp). Затем следующая задача Gulp запускает default-task из gulpfile.js. В этом есть что-то вроде глотка.
Когда я изменил инструмент Node.js, чтобы установить последний узел 12.x вместо старого, последняя версия gulp была 4.0.2. Результатом стала та же ошибка, что и в вопросе.
В этом случае мне помогло понизить node.js до последней версии 11.x, как уже предлагали Альфонс Р. Дсуза и Аймен Ясин. В этом случае, хотя нет необходимости использовать какие-либо предложенные ими команды, достаточно просто установить спецификацию версии установщика инструмента Node.js на последнюю версию Node от 11.x.
Точная версия Node.js, которая была установлена и работает, была 11.15.0. Я не должен был понизить глоток.
источник
Я ударил эту ошибку после обновления моего узла до версии 12, которая не работает с Gulp 3.9.1. Что касается того, что мой gulpfile.js не был таким сложным, я решил обновить его до Gulp 4, используя эту статью. Он прошел хорошо, и это было намного проще, чем я думал.
источник
У вас есть два варианта здесь
источник
Это потому, что проблема совместимости между
node
иgulp
в вашей системе. Понижениеnode
или обновлениеgulp
исправит эту проблему.Попробуйте удалить
node_modules
папку иpackage-lock.json
файл и установить заново, используяnpm i
команду, если она все еще не работает.источник
Что мне помогло, так это использование python2 во время установки npm.
источник
Как мы также получаем эту ошибку, когда мы используем пакет s3 NPM. Итак, проблема в пакете graceful-fs, мы должны обновить его. Работает нормально на 4.2.3.
Так что просто посмотрите, какой пакет NPM он показывает в журналах трассировки, и обновите graceful-fs соответственно до 4.2.3.
источник
Я также получал сообщение об ошибке на узле 12/13 с Gulp 3, переезд в узел 11 работал.
источник
Решено путем понижения версии Node.js с
12.14.0
до10.18.0
и переустановкиnode_modules
.источник
Если вы пытаетесь установить
semantic-ui
и возникает следующая ошибка, попробуйте загрузить последнюю версию узлаjs(13.5.0)
с последними функциями, с Node.js.org. Более того, вместо попытки установки семантики NPM, вы просто должны добавить ссылку (которую вы можете найти от cdnjs ссылка на заголовок вашегоindex.html
файла. Удачи!источник
Шаги, чтобы решить проблему: -
Я исправил проблему с помощью следующих шагов: -
Теперь вы можете проглотить развернуть
источник
Я предлагаю вам сначала убедиться, что установка NPM не является вашей проблемой. Затем вы понижаете версию узла и глотка. Я использовал узел 10.16.1 и gulp 3.9.1.
Чтобы понизить свой глоток, вы можете попробовать
источник