Я установил модули Node.js с помощью npm install, а затем попытался выполнить gulp sass-watch в командной строке. После этого я получил ответ ниже.

[18:18:32] Требуется внешний модуль babel-register
fs.js: 27
const {Math, Object, Reflect} = первоисточники;
                                  ^

ReferenceError: примордиалы не определены

Я пробовал это раньше gulp sass-watch:

npm -g установить gulp-cli

Ramesh

Ответов: 39

Ответы (39)

Я попал в ту же ошибку. Я подозреваю, что вы используете Node.js 12 и Gulp.js 3. Эта комбинация не работает: Gulp.js 3 не работает на Node.js 12 # 2324

Предыдущий обходной путь от января тоже не работает: После обновления до Node.js 11.0.0 запуск Gulp.js завершается с ошибкой ReferenceError: internalBinding is not defined '# 2246

Решение: выполните обновление до Gulp.js 4 или перейдите на более раннюю версию Node.js.

Использование NVM для управления используемой версией Node.js, выполнение следующих команд у меня сработало:

cd / to / your / project /
nvm install lts / dubnium
nvm использовать lts / dubnium
yarn upgrade # или `npm install`

Если вы пытаетесь установить semantic-ui и возникает следующая ошибка, попробуйте загрузить последнюю версию Node.js js (13.5.0) с последними функциями , с Node.js.org.

Более того, вместо того, чтобы пробовать семантику установки NPM, вы должны просто добавить ссылку (которую вы можете найти по ссылке cdnjs) в заголовок вашего файла index.html .

Мы также получаем эту ошибку, когда используем пакет s3 NPM. Итак, проблема в пакете graceful-fs - нам нужно его обновить. На 4.2.3 работает нормально.

Так что просто посмотрите, в каком пакете NPM он отображается в трассировке журналов, и обновите graceful-fs в соответствии с 4.2.3.

Если проблема не в gulp, проверьте модуль unzip npm. Прошло около шести лет с момента последнего обновления. Не работает с Node.js> v11.

Попробуйте это:

npm install -g n

sudo n 11.15.0

Это связано с проблемой совместимости между node и gulp в вашей системе. Понижение уровня узла или обновление gulp решит эту проблему.

sudo npm i -g n
sudo n 11.15.0

Попробуйте удалить папку node_modules и файл package-lock.json и установить заново с помощью команды npm i, если все еще не работает.

Я столкнулся с той же проблемой. Что я пробовал и что у меня сработало:

  1. Проверить версию Node.js и Gulp.js (комбинация Node.js v12 и Gulp.js меньше v4 не работает)

  2. Я понизил версию NPM на:

    sudo NPM install -g n
    sudo n 10.16.0
    

Работало нормально. Тогда просто следуйте инструкциям вашей консоли.

У меня была такая же ошибка. Я наконец исправил это, когда обновил все пакеты, а затем упомянул ту же версию движка Node.js и версию npm в package.json, как в моей локальной рабочей системе.

 "engines": {
    "node": "10.15.3",
    "npm": "6.9.0"
 }

Я получал эту ошибку при развертывании на Heroku.

Подробнее см. Поддержка Heroku.

Я получал эту ошибку в Windows 10. Оказалось, это поврежденный перемещаемый профиль.

npm ОШИБКА! узел v12.4.0
npm ERR! npm v3.3.12

npm ERR! первобытность не определена
npm ERR!
npm ERR! Если вам нужна помощь, вы можете сообщить об этой ошибке по адресу:
npm ERR! 

npm ERR! Пожалуйста, включите следующий файл с любым запросом в службу поддержки:

Удаление папки C: \ Users \ {user} \ AppData \ Roaming \ npm устранило мою проблему.

• 100001 100004 *

Я обнаружил эту проблему при попытке использовать @ vue-cli для создания нового проекта, и в итоге он оказался мошенническим package.json / package-lock. json файл и node_modules папка в корне моего пользовательского каталога.

Решение: Удалите package.json, package-lock.jsonи node_modules из каталога пользователя и вуаля, проблема решено! Теперь убери ладонь со лба!

Исправить за одну минуту:

Просто выполните эти шаги. Я использую Windows 10, и у меня она отлично сработала!

  1. В том же каталоге, где находится package.json, создайте файл npm-shrinkwrap.json со следующим содержимым:

     {
          "dependencies": {
            "graceful-fs": {
                "версия": "4.2.2"
             }
          }
        }
    
  2. Запустите npm install, и не волнуйтесь, он обновит npm-shrinkwrap.json с кучей содержимого.

  3. Запустите gulp, чтобы запустить проект.

Используйте следующие команды для установки Node.js v11.15.0 и Gulp.js v3.9.1:

npm install -g n

sudo n 11.15.0

npm установить gulp@^3.9.1
npm install
npm перестроить node-sass

Это решит эту проблему:

ReferenceError: примордиалы не определены в узле

Обновите до 4.0.1 и обязательно выполните миграцию https://fettblog.eu/gulp-4-parallel-and-series/#migration

Переход на стабильную версию Node.js устранил эту проблему для меня, поскольку она возникла после обновления до Node.js 12:

sudo n 10.16.0

Я предлагаю вам сначала убедиться, что NPM install не является вашей проблемой. Затем вы переходите на более раннюю версию Node.js и Gulp.js. Я использовал Node.js 10.16.1 и Gulp.js 3.9.1.

Чтобы понизить версию Gulp.js, вы можете попробовать:

npm install gulp@^3.9.1

Gulp 3.9.1 не работает с Node v12.x.x, и если вы обновитесь до Gulp 4.0.2, вам придется полностью изменить gulpfile.js с новым синтаксисом (серии и параллели). Поэтому лучше всего перейти на версию Node.js v 11.x.x (версия 11.15.0 у меня работала нормально), просто используя следующий код в терминале:

nvm установить 11.15.0
nvm use 11.15.0 # На случай, если он не выбрал автоматически 11.15.0 в качестве основного узла.
nvm удалить 13.1.0
npm перестроить node-sass

We encountered the same issue when updating a legacy project depending on gulp@3.9.1 to Node.js 12+.

These fixes enable you to use Node.js 12+ with gulp@3.9.1 by overriding graceful-fs to version ^4.2.4.

If you are using yarn v1

Yarn v1 supports resolving a package to a defined version. You need to add a resolutions section to your package.json:

{
  // Your current package.json contents
  "resolutions": {
    "graceful-fs": "^4.2.4"
  }
}

Thanks @jazd for this way to solve the issue.

If you are using npm

Using npm-force-resolutions as a preinstall script, you can obtain a similar result as with yarn v1. You need to modify your package.json this way:

{
  // Your current package.json
  "scripts": {
    // Your current package.json scripts
    "preinstall": "npx npm-force-resolutions"
  },
  "resolutions": {
    "graceful-fs": "^4.2.4"
  }
}

npm-force-resolutions will alter the package-lock.json file to set graceful-fsto the wanted version before the install is done.

If you are using a custom .npmrc file in your project and it contains either a proxy or custom registry, you might need to change npx npm-force-resolutions to npx --userconfig .npmrc npm-force-resolutions because as of now, npx doesn't use the current folder .npmrc file by default.

Origin of the problem

This issue stems from the fact that gulp@3.9.1 depends on graceful-fs@^3.0.0 which monkeypatches Node.js fs module.

This used to work with Node.js until version 11.15 (which is a version from a development branch and shouldn't be used in production).

graceful-fs@^4.0.0 does not monkeypatch Node.js fs module anymore, which makes it compatible with Node.js > 11.15 (tested and working with versions 12 and 14).

Note that this is not a perennial solution but it helps when you don't have the time to update to gulp@^4.0.0.

For anyone having the same error for the same reason in ADOS CI Build:

This question was the first I found when looking for help. I have an ADOS CI build pipeline where the first Node.js tool installer task is used to install Node.js. Then npm task is used to install Gulp.js (npm install -g gulp). Then the following Gulp.js task runs default-task from gulpfile.js. There's some gulp-sass stuff in it.

When I changed the Node.js tool to install 12.x latest node instead of an older one and the latest Gulp.js version was 4.0.2. The result was the same error as described in the question.

What worked for me in this case was to downgrade Node.js to latest 11.x version as was already suggested by Alphonse R. Dsouza and Aymen Yaseen. In this case though there's no need to use any commands they suggested, but rather just set the Node.js tool installer version spec to latest Node.js version from 11.x.

Enter image description here

The exact version of Node.js that got installed and is working was 11.15.0. I didn't have to downgrade Gulp.js.

Использование Python 2 (исполняемый python) во время установки npm у меня сработало:

установка npm --python = ~ / venv / bin / python

Используйте следующие команды и установите Node.js v11.15.0:

npm install -g n

sudo n 11.15.0

решит

ReferenceError: примордиалы не определены в узле

От @Terje Norderhaug отвечает @Tom Corelis.

If keeping Node.js v12 while using the latest gulp ^4.0, follow these steps:

Update the command-line interface (just for precaution) using:

npm i gulp-cli -g

Add/Update the gulp under dependencies section of your package.json file

"dependencies": {
  "gulp": "^4.0.0"
}

Delete your package-lock.json file.

Delete your node_modules folder.

Finally, run npm i to upgrade and recreate a brand new node_modules folder and package-lock.json file with correct parameters for Gulp ^4.0:

npm i

Note Gulp.js 4.0 introduces the series() and parallel() methods to combine tasks instead of the array methods used in Gulp 3, and so you may or may not encounter an error in your old gulpfile.js script.

To learn more about applying these new features, this site have really done justice to it: How to Migrate to Gulp.js 4.0

I fixed this issue on Windows 10 by uninstalling Node.js from Add or Remove Programs → Node.js.

Then I installed version 11.15.0 from https://nodejs.org/download/release/v11.15.0/

Choose node-v11.15.0-x64.msi if you're running Windows 64-bit.

Я также получал ошибку на Node.js 12/13 с Gulp.js 3. Сработал переход на Node.js 11.

Я решил понизить версию Node.js с 12.14.0 до 10.18.0 и переустановить node_modules.

У вас есть два варианта

  1. Либо обновить до gulp 4, либо
  2. перейти на более раннюю версию Node.js.

TL:DR

Gulp 3.* doesn't work on Node.js 12.* or above. You have to downgrade Node.js, or upgrade Gulp.

If you are short on time, downgrade Node.js to v11.* or below; if you need newer features, and have time to possibly fix a load of broken dependencies, upgrade Gulp to 4.* or above!

As others have already mentioned, Gulp 3.* is not supported on Node.js 12 or above, so you will have to downgrade your Node version to 11.* or below, OR upgrade your Gulp to 4.0.

The best option depends ultimately on how much time you have, as upgrading Gulp brings benefits of cleaner gulpfiles and in-built control over having tasks run in series or parallel, but also relies on you rewriting your gulpfile to a new syntax, and might (read: probably will - see end of this comment) cause conflicts with some dependencies.


Downgrading Node.js

This is the easiest and quickest option. Especially if you use n or nvm, as these allow you to very quick install and switch between Node.js versions.

Installing Node.js version on N

n 10.16.0

Installing a Node.js version on NVM

nvm install 10.16.0

Once you have done this, you may need to rebuild your npm dependencies or alternatively remove both your node_modules folder and your package-lock.json file and reinstalling your dependencies. Though if you are merely reverting to a preexisting Node.js version, you should probably be fine.


Upgrading Gulp

As mentioned above, this is a more time-intensive task, but it might bring benefits in the long run. For example, Node.js 12 has now introduced native support for ES Modules (behind an experimental flag) and full support in Node.js 13.

You may need to upgrade Node.js to use that, forcing you to upgrade Gulp. Or you may simply want the benefits of using Gulp 4, as it offers better and more efficient control over writing tasks.

There are a number of articles on this already, so I won't elaborate any further on the specifics, but to reiterate - this is not a quick job. Depending on the size of your project, there may be some notable rewriting required, and you may have dependencies that break. If you are in short supply of time, you should opt for simply downgrading Node.js, at least temporarily.


But I already have Gulp 4, and it still doesn't work!

If, like me, you are already using Gulp 4+ (I was using Gulp 4.0.2, originally on Node.js 10) and have recently upgraded (I upgraded to Node.js 13.8.0) are you are still getting the issue, it may be because a dependency is relying on an older version of Gulp, and that is getting caught in the pipeline.

In my case, gulp-combine-mq was a dependency using Gulp 3.9.*. Disabling this task in my gulpfile allowed Gulp to run again.

If this happens, you have a few options. You can,

  1. Go without the plugin if it's not absolutely necessary
  2. Find an alternative,
  3. Fix the plugin

Needless to say, if you have several plugins that rely on an older version of Gulp - especially if these plugins are vital for your application - this is where there can be a huge additional chunk of time spent in upgrading Gulp (hence the warnings above).

If this happens, it is best to just downgrade Node.js, at least until patches can be issued.

Я использовал Node.js v12.13.1, поэтому я понизился до v10.19.0. После этого все работало нормально.

Gulp выдает проблемы с Node.js версии 11 и выше. Удалите текущую версию Node.js и переустановите версию v10.15.1. Вот ссылка на эту версию. Это поможет мне и решит вашу проблему.

https://nodejs.org/download/release/v10.15.1/

Шаги по устранению проблемы:

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

  1. Установка NVM
  2. Установил lts / dubnium с помощью команды nvm install lts / dubnium
  3. Используйте lts / dubnium с помощью команды nvm install lts / dubnium

Теперь вы можете развернуть глоток.

Эта ошибка вызвана новой версией Node.js (12) и старой версией Gulp (меньше 4).

Переход на более раннюю версию Node.js и других зависимостей не рекомендуется. Я решил эту проблему, обновив файл package.json, получив последнюю версию всех зависимостей. Для этого я использую npm-check-updates. Это модуль, который обновляет package.json последней версией всех зависимостей.

Ссылка: https://www.npmjs.com/package/npm-check-updates

npm i -g npm-check-updates
ncu -u
npm install

В большинстве случаев нам придется обновить gulpfile.js, а также следующее:

Ссылка: Gulp 4: Новая система выполнения задач - gulp.parallel и gulp.series, Миграция

Раньше:

gulp.task(
    'sass', function () {
        return gulp.src([sourcePath + '/sass/**/*.scss', "!" + sourcePath + "/sass/**/_*.scss"])

            ....
    }
);

Other configuration...

gulp.task(
    'watch', function () {
        gulp.watch(sourcePath + '/sass/**/*.scss', ['sass']);
    }
);

После:

gulp.task('sass', gulp.series(function(done) {
    return gulp.src([sourcePath + '/sass/**/*.scss', "!" + sourcePath + "/sass/**/_*.scss"])

            ...

    done();
}));

Other config...

gulp.task(
    'watch', function () {
        gulp.watch(sourcePath + '/sass/**/*.scss', gulp.series('sass'));
    }
);

I got the same issue installing the npm package webshot.

NOTE: it was a known issue for that package as it depends on graceful-fs behind the scenes.

Fix: 1. upgrade graceful-fs to 4.x or higher

Fix: 2. use webshot-node instead https://www.npmjs.com/package/webshot-node

Я попробовал много предложений по устранению этой проблемы для существующего проекта на моем компьютере с Windows 10 и в итоге выполнил следующие шаги, чтобы исправить это;

  • Удалите Node.js из «Установка и удаление программ». Запустите новую командную строку и введите gulp -v, а затем node -v, чтобы убедиться, что он был полностью удален.
  • Загрузите и установите Node.js v10.16.0 - не последний, поскольку последняя комбинация node и gulp вызывает проблему, насколько я понимаю. Во время установки я не менял путь установки, как обычно (C: \ Program Files \ nodejs).
  • Откройте новую командную строку, перейдите в каталог вашего проекта, где у вас есть файл gulpfile.js, и запустите gulp, как показано на изображении.

Обратите внимание, что иногда, когда я переключаюсь между ветвями git, мне может потребоваться закрыть Visual Studio и снова запустить ее от имени администратора, чтобы снова увидеть, как это решение работает.

Насколько я понимаю, эта проблема начала возникать после того, как я установил последнюю рекомендованную версию (12.18.4) Node.js для нового проекта, и я понял это только тогда, когда некоторые изменения FE не были отражены в существующей сети проект.

enter image description here

Простое и элегантное решение

Просто выполните следующие действия. Он отлично работал с многократным запуском npm install, установкой любых других модулей или даже публикацией проекта в artifactory.

В том же каталоге, где у вас есть package.json, создайте файл npm-shrinkwrap.json со следующим содержимым:

{
  "dependencies": {
    "graceful-fs": {
        "version": "4.2.2"
     }
  }
}

Запустите npm install и не волнуйтесь, он обновит npm-shrinkwrap.json с большим количеством контента. Давайте избавимся от этих обновлений, обновив параметры скриптов package.json.

"scripts": {
    "preshrinkwrap": "git checkout -- npm-shrinkwrap.json",
    "postshrinkwrap": "git checkout -- npm-shrinkwrap.json"
}

Теперь вы можете запустить npm install, и ваш npm-shrinkwrap.json останется нетронутым и будет работать вечно.

Проверить версию Node.js:

 node --version

Проверить версию gulp:

gulp -v

Если Node.js> = 12 и gulp <= 3, выполните одно из следующих действий:

  1. Обновление глотком
sudo npm install -g gulp
  1. Узел перехода на более раннюю версию
sudo npm install -g n
sudo n 11.15.0

Как обновить (или понизить) Node.js с помощью npm

I had this very same error, but it was caused by a different issue.

OS: windows 10
nodejs version: 15.12.0
npm version: 7.6.3

The cause of the problem was graceful-fs package. Whenever I tried to run npm, even running npm-v was firing "ReferenceError: primordials is not defined".

I tried running npm install graceful-fs@latest, but it still didn't work, even though the package was latest version.

So what helped me?

run npm ls graceful-fs

This way you'll find all packages on which graceful-fs is dependency and which version it has. In my case it was mostly version 3.0, even though I've installed version 4.2.6

So how to fix it?

Open npm-shrinkwrap.json (not sure about packages-lock.json) and change search for graceful-fs - you'll see that it has older versions on a few places. Replace it with ^4.2.6 (or newer).

Then npm audit fix --force which will forcefully install the newer version everywhere.

Hope this works for you, it took me a few hours to find out how to fix it.

Установите gulp и добавьте свою версию Node.js в файл package.json, например:

{
  "dependencies": {
    "node":  "^10.16.3"
  }
}

Поскольку мой проект использовал gulp версии 4, мне пришлось сделать следующее, чтобы решить эту

  1. Удалить папку node_modules
  2. откройте package.json и обновите версию

Issue

Update

Вот подробное описание используемой мной версии

Version

Теперь запустите npm install, а затем запустите gulp default. Ошибка должна исчезнуть, и вы увидите:

Задача никогда не определялась: только по умолчанию.

Для тех, кто использует Пряжа:

пряжа global add n
п 11.15.0
yarn install # Придется устанавливать заново

Для меня ответ Диего Фортеса работает с одним небольшим изменением.

Вот мой рабочий процесс, если появляется эта ошибка:

  1. установка npm

  2. npm install gulp

  3. создать файл npm-shrinkwrap.json с

    {
      "dependencies": {
        "graceful-fs": {
            "версия": "4.2.2"
         }
      }
    }
    
  4. npm install (снова) (Не npm install gulp снова! Очень важно - иначе ошибка вернется)

  5. глоток (сейчас работает)

2022 WebDevInsider