I have been updating all the dependencies in my js program but did not change anything with any of my components. However now when I run
npm run build
I get an error with one of my components which says:
Failed to compile.
./src/components/DonationSummaryComponent.js
Line 14: '_' is not defined no-undef
Search for the keywords to learn more about each error.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! my-app@0.1.0 build: `react-scripts build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the my-app@0.1.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:UsersItayAppDataRoamingnpm-cache_logs2018-09-17T08_25_54_825Z-debug.log
I tried
npm i lodash
But this did not solve the problem.
Here is the component which the error is about:
import React, { Component } from 'react';
import {Alert} from 'react-bootstrap';
import {MonthlyDonations} from './MonthlyDonationsComponent.js';
export class DonationSummary extends Component {
render() {
var monthsComponents = [];
var monthNames = ["January", "February", "March", "April", "May", "June",
"July", "August", "September", "October", "November", "December"];
if(this.props.yearData.length > 0){
var monthsdata = _.groupBy(this.props.yearData, function(dataEntry) {
return(monthNames[(new Date(dataEntry.donationDate)).getUTCMonth()]);
});
for (var monthName in monthsdata) {
if (monthsdata.hasOwnProperty(monthName)) {
monthsComponents.push(<MonthlyDonations key={monthName+this.props.year} monthName={monthName} monthData={monthsdata[monthName]}/>);
}
}
}
else{
monthsComponents.push(<Alert key="noDonations" bsStyle="info"> there are no donations to display </Alert> );
}
return(
<div>
{monthsComponents}
</div>
);
}
}
line 14 which the error refers to is:
var monthsdata = _.groupBy(this.props.yearData, function(dataEntry) {
The error might be related to the fact that I updated react-bootstrap react to latest version (16.5.0). Both are being used in this component.
Сегодня я начал писать новый проект на Node.js и при первом же запуске получил ошибку:
const express = require('express');
^
ReferenceError: require is not defined
at ModuleJob.run (node:internal/modules/esm/module_job:152:23)
at async Loader.import (node:internal/modules/esm/loader:166:24)
at async Object.loadESM (node:internal/process/esm_loader:68:5)
Первым делом я проверил установленную версию Node.js:
Тут проблем не было
v15.5.1
Выглядело это довольно странно и раньше в серверных приложениях я такой ошибкой не сталкивался.
Быстрый поиск на stackoverflow нашел несколько тем, в которых говорят, что require не работает в браузере и советуют использовать webpack или browserify.
Еще несколько минут и я нашел то, что мне было нужно. Похоже, что в версиях Node.js 14+ ошибка ReferenceError: require is not defined может встречаться и на сервере.
Проблема в том, что в файле package.json была такая строка:
С ее помощью активируется подключение npm модулей через ключевое слово import.
Решение
Чтобы избавиться от ошибки require is not defined в Node.js можно сделать 3 вещи:
-
изменить тип модулей в
package.jsonнаcommonjs: -
удалить строку
"type": "module"из файлаpackage.json -
изменить тип подключения модулей на
import:// const express = require('express'); import express from 'express';

Photo from Unsplash
The npm ERR! code 1 error usually occurs when you run the npm install command.
This cause of this error is that one of the dependencies you define in your package.json file fails to be installed properly on your computer.
The error message log looks as follows:
$ npm install
npm ERR! code 1
npm ERR! path /n-app/node_modules/node-sass
npm ERR! command failed
npm ERR! command sh -c node scripts/build.js
...
npm ERR! Build failed with error code: 1
npm ERR! A complete log of this run can be found in:
npm ERR! .npm/_logs/2022-06-24T03_37_26_246Z-debug-0.log
In the example above, you can see that there is an npm ERR! path... defined right below the code 1 log:
$ npm install
npm ERR! code 1
npm ERR! path /n-app/node_modules/node-sass
This means that npm fails to install the node-sass module that’s added as a dependency to the n-app project.
To resolve this error, you need to upgrade the dependency module that causes the error.
Let’s learn how to fix this error next.
Fix npm error code 1 by updating your dependencies
Here’s the package.json file of the n-app project:
{
"name": "n-app",
"version": "1.0.0",
"dependencies": {
"axios": "^0.10.2",
"node-sass": "^4.14.1",
"webpack": "^4.0.0"
}
}
As you can see, there’s a dependency to the node-sass module version 4.14.1 in my project.
When looking into the node-sass documentation, I found that there’s a table showing the Node versions supported by the package:
Since I have Node v16.15.1 on my computer, this means I must use node-sass v6.0+ to resolve the issue.
Update the node-sass dependency to the latest version:
{
"dependencies": {
"axios": "^0.10.2",
"node-sass": "^7.0.1",
"webpack": "^4.0.0"
}
}
Then run npm install again. This time, the dependencies are installed without any error:
$ npm install
added 307 packages, and audited 308 packages in 50s
found 0 vulnerabilities
It’s always recommended to update all your dependency packages to the latest version to avoid compatibility issues with Node.
You can use npm-check-updates to help you with updating the dependencies:
# 👇 check your package.json for dependency updates
npx npm-check-updates
# 👇 write newer version in package.json
npx npm-check-updates -u
# 👇 install the latest version
npm install
If you don’t want to update all dependencies at once, you can update them one by one using the npx npm-check-updates output as a reference.
For example, here’s the output for n-app project:
$ npx npm-check-updates
Checking /n-app/package.json
[====================] 3/3 100%
axios ^0.21.2 → ^0.27.2
node-sass ^4.0.1 → ^7.0.1
webpack ^4.73.0 → ^5.73.0
Run npx npm-check-updates -u to upgrade package.json
Using the output above:
- Update one package version in
package.jsonfile - Then run
npm install - Make sure your application runs perfectly and pass all tests
Repeat the steps above until you have all package versions updated.
Fix npm error code 1 by downgrading Node (not recommended)
The other way to fix the issue is to downgrade your Node.js version.
In the example above, there are specific Node.js versions supported by specific node-sass versions. You need to make sure that you are using the Node version supported by your module.
This fix is not ideal because you may have other module with compatibility issues once you downgrade Node.
The best way to solve the issue is by updating Node.js and all your dependencies to the latest stable version as explained above.
And that’s how you fix the npm error code 1 issue in your project.
Я установил модули узлов с помощью 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
Ответы:
Мы столкнулись с той же проблемой при обновлении устаревшего проекта в зависимости от gulp@3.9.1Node.js 12.
Эти исправления позволяют использовать Node.js 12 с gulp@3.9.1переопределением graceful-fsверсии 4.2.3.
Если ваш проект активно не разрабатывается и вы используете npm
Создайте npm-shrinkwrap.jsonфайл, содержащий это:
{
"dependencies": {
"graceful-fs": {
"version": "4.2.3"
}
}
}
Зафиксируйте этот npm-shrinkwrap.jsonфайл. И затем выполните, npm installкоторый обновит npm-shrinkwrap.jsonфайл.
К сожалению, это решение больше не работает, если вы npm installснова. Смотрите другие решения ниже.
Если ваш проект находится в активной разработке и вы используете Yarn v1
Yarn v1 поддерживает преобразование пакета в определенную версию . Вам необходимо добавить resolutionsраздел в ваш package.json:
{
// Your current package.json contents
"resolutions": {
"graceful-fs": "4.2.3"
}
}
Спасибо @jazd за этот способ решить проблему.
Если ваш проект находится в активной разработке и вы используете npm
Используя npm-force-resolutionsв качестве сценария предварительной установки, вы можете получить аналогичный результат, как с Yarn v1. Вам нужно изменить ваш package.json следующим образом:
{
// Your current package.json
"scripts": {
// Your current package.json scripts
"preinstall": "npx npm-force-resolutions"
},
"resolutions": {
"graceful-fs": "4.2.3"
}
}
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.js fs, что делает его совместимым с Node.js> 11.15.
Обратите внимание, что это не постоянное решение, но оно помогает, когда у вас нет времени на обновление gulp@^4.0.0.
Используйте следующие команды и установите узел v11.15.0 :
npm install -g n
sudo n 11.15.0
будет решать
ReferenceError: первичные значения не определены в узле
По рекомендации @Terje Norderhaug @Tom Corelis отвечает.
Исправить это за 1 минуту:
Просто следуйте этим шагам . Я на Windows 10, и это отлично сработало для меня!
- В той же директории, где у вас есть,
package.jsonсоздайтеnpm-shrinkwrap.jsonфайл со следующим содержимым:
{
"dependencies": {
"graceful-fs": {
"version": "4.2.2"
}
}
}
-
Запустите
npm install, и не волнуйтесь, он будет обновлятьсяnpm-shrinkwrap.jsonс кучей контента. -
Запустите,
gulpчтобы начать проект.
Используйте следующие команды для установки node v11.15.0и gulp v3.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
Использование NVM для управления используемой версией узла, выполнение следующих команд помогло мне:
$ cd /to/your/project/
$ nvm install lts/dubnium
$ nvm use lts/dubnium
$ yarn upgrade # or `npm install`
Gulp 3.9.1 не работает с Node v12.xx, и если вы обновитесь до Gulp 4.0.2, вам придется полностью изменить gulpfile.js с новым синтаксисом (Series & Parallels). Поэтому лучше всего перейти на Node V 11.xx, 11.15.0 работал для меня нормально. Просто используя следующий код в терминале:
nvm install 11.15.0
nvm use 11.15.0 #just in case it didn't automatically select the 11.15.0 as the main node.
nvm uninstall 13.1.0
npm rebuild node-sass
Ура!
была такая же ошибка и , наконец , исправить , что при обновлении всех пакетов , а затем упомянул ту же версию узла двигателя и НПМ версию в package.jsonкак в моей локальной рабочей системы.
"engines": {
"node": "10.15.3",
"npm": "6.9.0"
}
я получал эту ошибку при развертывании на героку.
для дополнительной проверки поддержки героку
Понижение до стабильного узла исправило эту проблему для меня, как это произошло после того, как я обновился до узла 12
sudo n 10.16.0
TL: DR
Gulp 3.*не работает на узле 12.*или выше. Вы должны понизить Node или обновить Gulp.
Если у вас мало времени, понизьте Node до версии v11. * Или ниже; если вам нужны более новые функции, и у вас есть время, чтобы по возможности исправить загрузку сломанных зависимостей, обновите Gulp до версии 4. * или выше!
Как уже упоминали другие, Gulp 3.*не поддерживается на Node 12или выше, поэтому вам придется понизить версию своего Node до 11.*или ниже, ИЛИ обновить Gulp до 4.0.
В конечном счете, лучший вариант зависит от того, сколько у вас есть времени, поскольку обновление Gulp дает преимущества более чистых файлов gulp и встроенного контроля над выполнением задач, выполняемых последовательно или параллельно , но также полагается на то, что вы переписываете свой gulpfile в новый синтаксис, и может (читай: вероятно будет — см. конец этого комментария) может вызвать конфликты с некоторыми зависимостями.
Понижение Узла
Это самый простой и быстрый вариант. Особенно, если вы используете n или nvm , поскольку они позволяют очень быстро установить и переключаться между версиями Node.
Установка версии Node на N
n 10.16.0
Установка версии узла на NVM
nvm install 10.16.0
После того, как вы это сделали, вам может понадобиться перестроить ваши зависимости npm или, в качестве альтернативы, удалить и вашу node_modulesпапку, и ваш package-lock.jsonфайл, и переустановить ваши зависимости. Хотя, если вы просто возвращаетесь к уже существующей версии Node, у вас, вероятно, все будет хорошо.
Обновление Gulp
Как упоминалось выше, это более трудоемкая задача, но она может принести выгоды в долгосрочной перспективе. Например, Node 12теперь представил встроенную поддержку модулей ES (за экспериментальным флагом) и полную поддержку в Node 13.
Возможно, вам придется обновить Node, чтобы использовать это, заставляя вас обновить Gulp. Или вы можете просто захотеть воспользоваться преимуществами Gulp 4, так как он предлагает лучший и более эффективный контроль над задачами написания.
Об этом уже есть ряд статей, поэтому я не буду более подробно останавливаться на деталях, но повторюсь — это не простая работа . В зависимости от размера вашего проекта, может потребоваться заметное переписывание, и у вас могут быть зависимости, которые нарушаются. Если у вас не хватает времени, вы должны просто понизить рейтинг узла, хотя бы временно.
Но у меня уже есть Gulp 4, и он все еще не работает!
Если, как и я, вы уже используете Gulp 4+ (я использовал Gulp 4.0.2, изначально на Node 10) и недавно обновили (я обновился до Node 13.8.0), если вы все еще получаете проблему, это может быть потому, что зависимость зависит от старая версия Gulp, и это попадает в конвейер.
В моем случае gulp-combine-mqбыла зависимость с использованием Gulp 3.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
npm i -g npm-check-updates
ncu -u
npm install
В большинстве случаев нам придется обновить gulpfile.jsтакже, как показано ниже:
Ссылка : https://fettblog.eu/gulp-4-parallel-and-series/#migration
Перед:
gulp.task(
'sass', function () {
return gulp.src([sourcePath + '/sass/**/*.scss', "!" + sourcePath + "/sass/**/_*.scss"])
....
}
);
Other config...
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'));
}
);
Я получал эту ошибку на Windows 10. Оказалось, что поврежденный перемещаемый профиль.
npm ERR! node v12.4.0
npm ERR! npm v3.3.12
npm ERR! primordials is not defined
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
Удаление C:Users{user}AppDataRoamingnpmпапки устранило мою проблему.
Просто следуйте этим шагам. Он отлично работал при многократной установке npm, установке любых других модулей или даже публикации проекта в артефакте.
В том же каталоге, где у вас есть 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 v12 при использовании последней версии gulp ^ 4.0, выполните следующие действия:
Обновите интерфейс командной строки (только для предосторожности), используя:
npm i gulp-cli -g
Добавьте / обновите gulpнижний раздел зависимостей вашего package.json
"dependencies": {
"gulp": "^4.0.0"
}
Удалить свой package-lock.jsonфайл
Удалить вашу node_modulesпапку
Наконец, запустите npm iдля обновления и воссоздания новой папки node_modules и файла package-lock.json с правильными параметрами для Gulp ^ 4.0
npm i
Примечание Gulp.js 4.0 вводит series()и parallel()методы , чтобы объединить задачи вместо методов массивов , используемых в Глоток 3, и поэтому вы можете или не может возникнуть ошибка в вашем старом gulpfile.jsскрипте.
Чтобы узнать больше о применении этих новых функций, этот сайт действительно сделал это правильно: https://www.sitepoint.com/how-to-migrate-to-gulp-4/
( Если это поможет, пожалуйста, оставьте стук вверх )
Я исправил эту проблему в Windows 10, удалив узел из раздела «Установка и удаление программ» -> Node.js.
Затем я установил версию 11.15.0 с https://nodejs.org/download/release/v11.15.0/
Выберите node-v11.15.0-x64.msi, если у вас работает Windows 64bit.
Я столкнулся с той же проблемой. Что я пытался и работал для меня:
-
Проверьте версию NODE и GULP (комбинация узла v12 и gulp меньше чем v4 не работает)
-
Я понижаю версию NPM:
- sudo NPM установить -gn
- sudo n 10.16.0
Он работал нормально, а затем просто следуйте инструкциям вашей консоли.
Для тех, кто использует yarn.
yarn global add n
n 11.15.0
yarn install # have to install again
Для тех, кто имеет ту же ошибку по той же причине в 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, используя эту статью. Он прошел хорошо, и это было намного проще, чем я думал.
У вас есть два варианта здесь
- Либо обновить до глотка 4 Или еще
- перейти на более раннюю версию узла.
Это потому, что проблема совместимости между nodeи gulpв вашей системе. Понижение nodeили обновление gulpисправит эту проблему.
sudo npm i -g n
sudo n 11.15.0
Попробуйте удалить node_modulesпапку и package-lock.jsonфайл и установить заново, используя npm iкоманду, если она все еще не работает.
Что мне помогло, так это использование python2 во время установки npm.
> npm install --python=~/venv/bin/python
Как мы также получаем эту ошибку, когда мы используем пакет 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файла. Удачи!
Шаги, чтобы решить проблему: —
Я исправил проблему с помощью следующих шагов: —
- Установка NVM
- Установил lts / dubnium с помощью команды » nvm install lts / dubnium «
- Используйте команду lts / dubnium с помощью команды « nvm install lts / dubnium «
Теперь вы можете проглотить развернуть
Я предлагаю вам сначала убедиться, что установка NPM не является вашей проблемой. Затем вы понижаете версию узла и глотка. Я использовал узел 10.16.1 и gulp 3.9.1.
Чтобы понизить свой глоток, вы можете попробовать
npm install gulp@^3.9.1