node.js - عملکردهای Azure هنگامی که تلاش برای اتصال دیباگر میشود، خراب میشوند و باعث میشوند nodemon به صورت مداوم مجدداً بارگذاری شود


تلاش کردهام فرمتها را پاک کرده و nodemon را مجدداً نصب کنم اما بیفایده بود، هنگامی که با Azure Functions و tsc -w بدون تغییر هیچ چیز اجرا میکنم، این را به صورت حلقه دریافت میکنم (این یک قطعه است و خیلی بیشتر وجود دارد):

[nodemon] فایلهایی که باعث بررسی تغییر میشوند: dist/api/index.js.map [nodemon] قاعده مربوطه مطابقت داده شد: **/. [nodemon] تغییرات پس از فیلترها (قبل/بعد): 1/0 [nodemon] فایلهایی که باعث بررسی تغییر میشوند: dist/api/index.js [nodemon] قاعده مربوطه مطابقت داده شد: **/. [nodemon] تغییرات پس از فیلترها (قبل/بعد): 1/1 [nodemon] در حال راهاندازی مجدد به دلیل تغییرات... [nodemon] dist/api/index.js

[nodemon] فایلهایی که باعث بررسی تغییر شدهاند: dist/graphql/es.js.map\n[nodemon] قاعده مربوطه مطابقت داده شد: **/.\n[nodemon] تغییرات بعد از فیلترها (قبل/بعد): 1/0\n[nodemon] فایلهایی که باعث بررسی تغییر شدهاند: dist/graphql/es.js\n[nodemon] قاعده مربوطه مطابقت داده شد: **/.\n[nodemon] تغییرات بعد از فیلترها (قبل/بعد): 1/1\n[nodemon] در حال راهاندازی مجدد به دلیل تغییرات...\n[nodemon] dist/graphql/es.js

[nodemon] فایلهایی که باعث بررسی تغییر شدهاند: dist/graphql/databaseInit.js.map [nodemon] قانون هماهنگ شده: **/. [nodemon] تغییرات بعد از فیلترها (قبل/بعد): 1/0 [nodemon] فایلهایی که باعث بررسی تغییر شدهاند: dist/graphql/databaseInit.js [nodemon] قانون هماهنگ شده: **/. [nodemon] تغییرات بعد از فیلترها (قبل/بعد): 1/1 [nodemon] بهخاطر تغییرات در حال راهاندازی مجدد... [nodemon] dist/graphql/databaseInit.js

پیکربندی VSCode که من استفاده میکنم:

{ "name": "راهاندازی بکاند", "type": "node", "request": "launch", "cwd": "${workspaceRoot}", "runtimeExecutable": "nodemon", "runtimeArgs": [ "--inspect=5858", "--verbose" ], "restart": true, "port": 5858, "console": "integratedTerminal", "internalConsoleOptions": "neverOpen" },

و package.json:

"scripts" : { "build" : "tsc" , "watch" : "tsc -w" , "prestart" : "npm run build && func extensions install" , "start:host" : "func start --cors *" , "start" : "npm run start:host & npm run watch" , "build:production" : "npm run prestart && npm prune --production" , "test" : "echo \"هنوز تستی وجود ندارد...\"" },

این در بوتکمپ رخ نمیدهد، جایی که همانطور که انتظار میرود عمل میکند، من همگامسازی ابری برای اسنادی که این فایلها در آنها هستند را غیرفعال کردهام.

بهروزرسانی

وقتی فقط فرمان پایه را بدون nodemon اجرا میکنم، این را دریافت میکنم:

[29/04/2020 14:56:36] میزبان راهاندازی شد (45 میلیثانیه) [29/04/2020 14:56:36] میزبان شروع شد (46 میلیثانیه) [29/04/2020 14:56:36] میزبان کار شروع شد [29/04/2020 14:56:36] شروع بازرس در 127.0.0.1:5859 ناموفق بود: آدرس قبلاً در استفاده است [29/04/2020 14:56:36] شروع فرآیند کارگر: node --inspect=5859 "/Users/ahmed/.nvm/versions/node/v12.16.2/lib/node_modules/azure-functions-core-tools/bin/workers/node/dist/src/nodejsWorker.js" --host 127.0.0.1 --port 53018 --workerId b6aaf934-a647-46b0-8bde-35ef8584b03a --requestId ef307ac9-edc9-440b-8735-e81f1879029f --grpcMaxMessageLength 134217728 [29/04/2020 14:56:36] فرآیند node با شناسه=11410 شروع شد [29/04/2020 14:56:36] شروع بازرس در 127.0.0.1:5859 ناموفق بود: آدرس قبلاً در استفاده است [29/04/2020 14:56:36] شروع فرآیند کارگر: node --inspect=5859 "/Users/ahmed/.nvm/versions/node/v12. 16.2/lib/node_modules/azure-functions-core-tools/bin/workers/node/dist/src/nodejsWorker.js" --host 127.0.0.1 --port 53018 --workerId c12804a8-bb18-485c-95e0-c516c6fc4599 --requestId c93e0c56-cdf0-4360-869b-d6410005227f --grpcMaxMessageLength 134217728 [29/04/2020 14:56:36] پردازش node با شناسه=11411 شروع شد [29/04/2020 14:56:36] شروع بازرس روی 127.0.0.1:5859 با شکست مواجه شد: آدرس در حال استفاده است [29/04/2020 14:56:36] تعداد تلاش برای راهاندازی مجدد کارگر زبان برای runtime:node بیشینه شد. در حال خاموش کردن میزبان توابع [29/04/2020 14:56:36] در حال متوقف کردن میزبان... [29/04/2020 14:56:36] در حال متوقف کردن JobHost [29/04/2020 14:56:36] میزبان Job متوقف شد [29/04/2020 14:56:36] خاموش شدن میزبان کامل شد. [29/04/2020 14:56:36] میزبان راهاندازی شد. [29/04/2020 14:56:36] در حال متوقف کردن JobHost [29/04/2020 14:56:36] میزبان Job متوقف شد

پاسخ شماره ۱

nodemon نیاز دارد که مشخص کنید کدام فایلها را میخواهید زیر نظر بگیرد، در غیر این صورت هر چیزی در مسیر جاری (cwd) را بررسی میکند. شما میتوانید از گزینه --watch استفاده کنید، یعنی --watch dist/

پاسخ شماره ۲

بعد از دیباگ بیشتر متوجه شدم که مشکل مربوط به فایل package.json من بود:

"scripts": {
    "watch": "tsc -w",
    "start:host": "func start --cors *",
    "start": "npm run start:host & npm run watch",
  },

به نظر میرسد & npm run watch به هر دلیلی در macOS فرایند را میکشت. از آنجایی که npm run watch حتی در ویندوز هم واقعاً کار نمیکرد (همیشه مجبور بودم یک tsc -w جداگانه در پوشه اجرا کنم تا بازکامپایل کردن کار کند)، تصمیم گرفتم آن را حذف کنم.

اگر کسی بتواند توضیح دهد چرا یا راه حل بهتری پیشنهاد کند، من بسیار استقبال میکنم زیرا این یک راه حل خیلی سطحی است.