Що означає помилка ELIFECYCLE Node.js?


211

Що означає ELIFECYCLE?

Ось мій код програми: https://gist.github.com/samholmes/388ca4552c5936b52c5d

Коли я запускаю команду "blast-emails", вона буде працювати деякий час, поки невдовзі не впаде з помилкою:

npm ERR! Linux 3.2.0-4-amd64
npm ERR! argv "/root/.nvm/versions/io.js/v1.6.1/bin/iojs" "/root/.nvm/versions/io.js/v1.6.1/bin/npm" "run" "live"
npm ERR! node v1.6.1
npm ERR! npm  v2.7.1
npm ERR! code ELIFECYCLE
npm ERR! emailer@0.0.0 live: `NODE_ENV=production node app.js`
npm ERR! Exit status 137
npm ERR! 
npm ERR! Failed at the emailer@0.0.0 live script 'NODE_ENV=production node app.js'.
npm ERR! This is most likely a problem with the emailer package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     NODE_ENV=production node app.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls emailer
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /apps/emailer/npm-debug.log

npm-debug.logФайл також включений в суті.

Я шукаю одну з двох відповідей: Що означає ELIFECYCLE? (або) Чому я отримую помилку в коді програми?


Щойно я отримав таку ж помилку від мого процесу веб-упаковки (не перезапускався через кілька годин, і я вніс зміни, які порушили збірку веб-пакета). В іншому випадку я жодного разу не бачив помилки, і перезапуск процесу вирішив проблему.
— Аллі

1
ps -ax | grep npm ..і вбийте npm-процеси, які працювали на мене
— Buminda

Відповіді:


62

По суті, це говорить про те, що він не може породити ваш процес не через дозвіл, а через помилку у вашому сценарії. Джерело

У вас немає проблем із виконанням NODE_ENV=production node app.js?


У мене немає проблем із виконанням сценарію. Насправді це прекрасно працює. Я отримую цю помилку лише під час запуску "blast-email", який робить цикл async.eachSeries і надсилає електронні листи, використовуючи nodemailer, і транспорт мандерліту, який ви можете побачити у вихідному коді. Можливо, це проблема з вузловим продавцем або транспортом?
— Сем

в emailer.js є посилання на функцію 'помилка', але я не можу її знайти.
— П'єр Інглеберт

яка функція в emailer.js?
— Сем


Функція помилки визначається нижче , в межах цього обсягу: gist.github.com/samholmes/388ca4552c5936b52c5d#file-app-js-L81
— Сем

43

Можна подумати, що це тому, що застарілі версії npm та node, але це не так.

Як каже П'єр Інглеберт, якщо заглянути в джерело, ви зможете побачити, що це End of lifecycleозначає програму несподівано зупинилася. Це може мати різні причини. Отже, це не синтаксична помилка і не очікуване виняток / помилка.

Помилка з'явилася мені, коли інший інструмент вже використовував http-порт (3000), визначений у моїх сценаріях вузлів. Запустивши додаток для вузла на порт 80, переконайтеся, що ви зупинили веб-сервер Apache (як приклад).


2
Так само для мене, порт використовував іншу програму
— стебло

Потім ви можете перейти до stackoverflow.com/questions/39632667 / ...
— estellezg

1
У моєму випадку я не помітив Error: listen EADDRINUSE :::3000попередження
— estellezg

1
Помилка дійсно неоднозначна, якщо ви використовуєте стару версію node / npm, я вважав, що мені потрібно оновити, замість цього просто не вдалося завантажити
— Алекс

13

Працюючи над темою WordPress, я отримав ту саму ELIFECYCLEпомилку з дещо іншим результатом:

npm ERR! Дарвін 14.5.0
npm ERR! argv "/usr/local/Cellar/node/7.6.0/bin/node" "/ usr / local / bin / npm" "встановити"
npm ERR! вузол v7.6.0
npm ERR! npm v3.7.3
npm ERR! код ELIFECYCLE
npm ERR! Foundationsix@1.0.0 післяінсталяції: `встановлення бауера та & gulp build '
npm ERR! Вихід із статусу 1
npm ERR! 
npm ERR! Помилка при сценарії після встановлення Foundationsix@1.0.0 "Установка bower && gulp build".
npm ERR! Переконайтеся, що у вас встановлена ​​остання версія node.js та npm.
npm ERR! Якщо це так, швидше за все, це проблема з пакетом Foundationsix,
npm ERR! не з самим npm.
npm ERR! Скажіть автору, що це не працює у вашій системі:
npm ERR! встановити bower && gulp build

Спробувавши npm installще раз з тим же результатом, я спробував bower install. Коли це було успішним, я спробував, gulp buildі це теж спрацювало.

Зараз все працює просто чудово. Не маю ідеї, чому виконання кожної команди окремо працювало, коли &&не вдалося, але, можливо, хтось інший знайде цю відповідь корисною.


@Matthew Read - Як ви переформатували цей блок коду? Це певне поліпшення, але я не впевнений, як це зробити самостійно ... Я думаю, що я використовував 3 зворотних кліща, натиснув "Enter" для нового рядка, потім мій код (далі - "enter" та 3 тикетки "назад" щоб закрити блок коду), але це, здається, для мене більше не працює. Покажчики?
— adam-asdf

Якщо ви натиснете на "редагувати X годин / днів тому" над моїм ім'ям, а потім натисніть "джерело", воно покаже вам! Просто попередньо відформатований текстовий тег. Іншим варіантом було б відступ кожного рядка на 4 пробіли. Переповнення стека не підтримує синтаксис потрійного зворотного тла, як GitHub / Slack / тощо. - ваше форматування в результаті інтерпретується як три послідовні однонаправлені блоки, причому перший і останній повністю порожній (саме тому перший рядок був сильно викреслений з відступом, а в останньому рядку був невеликий виділений пробіл в кінці) .
— Матвій

У моєму випадку я забув запустити npm install(я новачок у node.js). Ваша відповідь привела мене в правильному напрямку. Дякую.
— Кон

13

У моєму випадку це було через низьку пам'ять оперативної пам’яті, коли бібліотека стиснення фотографій не змогла обробити більші фотографії.


1
У мене така ж проблема, це через дефіцит пам’яті.
— Енвіл

2
Те саме! Здається, що ELIFECYCLE errno 137 може бути викликаний і втратою пам'яті. У моєму випадку мій сервер мав 1 Гб оперативної пам’яті. Оновлено його до 2Gb, і моя збірка пройшла.
— Фірз

1
Я побіг npm run watchпід Докером і отримав помилку з питання. Коли я збільшив ліміт пам’яті та процесора докера, проблема пішла.
— Павло Басенко

5

Якщо ви приїхали сюди, як і я, отримавши подібну помилку при спробі керівництва React Getting Star , ви, можливо, хочете знати, що проблема могла бути викликана тим, що не встановив Watchman. Завантажте його тут або встановіть його за допомогою Homebrew brew install watchmanі спробуйте ще раз: https://facebook.github.io/watchman/docs/install.html

PS: Можливо, ви хочете зробити brew updateперший.


Дякую ... намагання навчитися просто будувати чужу реакцію.нативний чек-гитуб був жорстоким. Стільки неточно задокументованих кроків налаштування!
— Дронз

1
@Dronz Так, мабуть .. Не знаю чому.
— Магне

1
@Dronz Не впевнений. Мені це було потрібно на моєму Mac.
— Магне

1
Дякую. Здається, це не потрібно для Windows.
— Дронз

1
Я налаштовував заздалегідь вбудований шаблон у WordPress, щоб забратись із командою розробників, отримав таку ж помилку і зміна рядка cwd: parseInt(process.versions.node) < 8 ? process.cwd : process.cwd()придушила помилку, але генерувала ще один ... brew updateпрацював на мене.
— shimanyi

4

Під час запуску збірки Webpack у мене виникла подібна помилка, оскільки вузол не розуміє async awaitключових слів у старих версіях. Я додав webpack babel-plugin-transform-async-to-generator і це було вирішено. Це замінює їх обіцянками.


4
на process._tickCallback (внутрішній / процес / next_tick.js: 10
4: 9)
npm ERR! код ELIFECYCLE
npm ERR! errno 1
npm ERR! ng-contact-manager@0.0.0 зразок: `node src / server / dat
а / насіння-db.js`
npm ERR! Вихід із статусу 1
npm ERR!
npm ERR! Не вдалося отримати зразок сценарію ng-contact-manager@0.0.0.
npm ERR! Це, мабуть, не проблема з npm. Є ріл
додатковий вихід журналу вище.

npm ERR! Повний журнал цього запуску можна знайти в:

У мене те саме питання - як я нарешті вирішив! Помилка: моя помилка з терміналу, коли я запускаю npm run sample після виправлення свого підключення до бази даних ім’я користувача та пароль. Я використовував mlab для своєї бази даних та під файлом .env, я забуваю правильно поставити ім’я користувача та пароль. Коли я виправдаю, що працюю.

> ng-contact-manager@0.0.0 зразок /Users/mohammedr.kemal/Downl
oads / Ex_Files_ANGULAR_API_AUTH / Файли вправ / Ch01 / 01_04 / start
> вузол src / server / data / seed-db.js

підключено до mongodb ...
підключено до mongodb ...
Введено 2 записи.
закриття з'єднання ...
зроблено.
Вставлено 12 записів.
закриття з'єднання ...
зроблено.

Тому, можливо, було б добре шукати будь-яке з'єднання даних, яке ми зробили у своєму коді, якщо у нас є.


3

У мене була така ж помилка, коли я встановив нові пакети або оновив їх:

...
npm ERR! code ELIFECYCLE
npm ERR! errno 1
...

Це допомогло мені виконати інсталяційну команду ще раз чи пару разів. Після цього помилка зникла.


2

У мене виникло це питання, коли я працював над двома проектами, які були однаково налаштовані, і я вже працював. Це означало, що інший проект не міг використовувати цей номер порту. Як тільки я припинив роботу іншого проекту, у мене не було проблем.


1

У моєму випадку це була проблема дозволу з Linux, а не написання:

npm run start

Я намагався:

sudo npm run start

Потім введіть свій пароль користувача sudo, і ви готові йти!


1

Рішення для Windows те саме, що відповідь Linux sudo. Запустіть npm start (або що завгодно) як Administrator. Я додав новий модуль до свого проекту. Працювали на деяких машинах, але на інших, які були більш замкненими, не так вже й багато. Визначили це час, але новий модуль потребував доступу до "чогось", що не було доступно без дозволів адміністратора.


0

У мене був той самий код помилки, коли я виконував npm run build у контейнері докера вузла.

Локально він працював під час контейнера, я встановив можливість скидати помилку, коли є попередження під час компіляції, в той час як локально він не встановлений. Тож ця помилка може означати все, що пов’язано із зупинкою процесу, який виконує NPM


0

У моєму випадку я створив подібну помилку, коли копіював проект з іншого каталогу. деякі приховані файли, як-от критичний .babelrc, були відсутні. Так ааа ... переконайтеся, що ви скопіювали всі файли! :)


0

Ця проблема також може виникнути, коли ви витягуєте код з git та ще не встановлених модулів вузла "npm install".


0

Для мене це було потрійне твердження:

Він скаржився на цей рядок, зокрема про крапку з комою:

let num_coin = val.num_coin ? val.num_coin || 2;

Я змінив його на:

let num_coin = val.num_coin || 2;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.