9

Как исправить ошибку "ReferenceError: primordials is not defined" в Node.js

9

У меня возникла проблема при использовании Gulp. Я установил модули Node.js с помощью команды 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

Перед запуском gulp sass-watch я выполнил следующую команду:

npm -g install gulp-cli

Кто-нибудь сталкивался с похожей проблемой и знает, как её можно решить?

5 ответ(ов)

1

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

npm install -g n
sudo n 11.15.0

Это должно помочь решить проблему:

ReferenceError: primordials is not defined in node

Данный подход основан на ответах @Terje Norderhaug и @Tom Corelis.

0

Для установки Node.js версии 11.15.0 и Gulp.js версии 3.9.1 вы можете использовать следующие команды:

npm install -g n

sudo n 11.15.0

npm install gulp@^3.9.1
npm install
npm rebuild node-sass

Эти команды помогут решить проблему:

ReferenceError: primordials is not defined in node

Обратите внимание, что использование sudo может потребоваться только в некоторых системах, в зависимости от ваших прав доступа. Если вы работаете в Windows, возможно, вам придется использовать командную строку с правами администратора.

0

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

Просто выполните следующие шаги. Это прекрасно работает при выполнении команды 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 останется нетронутым и будет работать всегда.

0

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

nvm install 11.15.0
nvm use 11.15.0 # На всякий случай, если версия 11.15.0 не была автоматически выбрана как основная.
nvm uninstall 13.1.0
npm rebuild node-sass

Это позволит вам продолжать использовать Gulp 3.9.1 без необходимости переписывать ваш gulpfile.js.

0

Да, откат到 стабильной версии Node.js решил эту проблему для меня, поскольку она возникла после обновления до Node.js 12:

sudo n 10.16.0

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

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь