Razzle: المنفذ غير متاح على Heroku أثناء النشر

تم إنشاؤها على ٦ سبتمبر ٢٠١٧  ·  3تعليقات  ·  مصدر: jaredpalmer/razzle

أنا أنشر إلى Heroku ، وقد قمت بتضمين البرامج النصية التالية في package.json :

"scripts": {
  "heroku-postbuild": "yarn run build"
  "start": "NODE_ENV=production node build/server.js"
}

لسوء الحظ ، فإن var PORT env غير معروف في وقت الإنشاء وبدلاً من ذلك تم تعيينه بواسطة Heroku في وقت التشغيل ، وبما أن razzle يحتاج إلى معرفة المنفذ في وقت الإنشاء ، فهذا يعني أنه يجب علي البناء قبل بدء تشغيل الخادم. مع وضع ذلك في الاعتبار ، حاولت تغيير البرامج النصية الخاصة بي لتبدو كما يلي:

"scripts": {
  "start": "NODE_ENV=production yarn run build && node build/server.js"
}

لسوء الحظ ، يستغرق ذلك وقتًا طويلاً وينتهي بالربط بعد مهلة Heroku البالغة 60 ثانية:

2017-09-06T01: 23: 13.536789 + 00: 00 تطبيق [web.1]: تجميع العميل ...
2017-09-06T01: 23: 14.395857 + 00: 00 heroku [web.1]: خطأ R10 (مهلة التمهيد) -> فشلت عملية الويب في الارتباط بـ $ PORT خلال 60 ثانية من الإطلاق
2017-09-06T01: 23: 14.395963 + 00: 00 heroku [web.1]: إيقاف العملية باستخدام SIGKILL
2017-09-06T01: 23: 14.499913 + 00: 00 heroku [web.1]: تم إنهاء العملية بالحالة 137
2017-09-06T01: 23: 14.509625 + 00: 00 heroku [web.1]: تم تغيير الحالة من البداية إلى التعطل

هل هناك طريقة لا يمكننا بها طلب الميناء في وقت البناء؟ لماذا هو مطلوب إذن على أي حال؟

التعليق الأكثر فائدة

// razzle.config.js
const razzleHeroku = require("razzle-heroku")

module.exports = {
  modify: (config, {target, dev}, webpack) => {
    config = razzleHeroku(config, {target, dev}, webpack)
    // do something to config

    return config
  },
}

ربما شيء من هذا القبيل؟

ال 3 كومينتر

يمكنك استخدام razzle-heroku :) فهو يوسع تكوين

آه ، لم أكن أعرف عن ذلك ، شكرًا على الإشارة إليه! إذا كان لدي بالفعل razzle.config.js مع وظيفة modify مخصصة ، فهل هناك طريقة لا يزال بإمكاني استخدامها مع استخدام razzle-heroku أيضًا؟

// razzle.config.js
const razzleHeroku = require("razzle-heroku")

module.exports = {
  modify: (config, {target, dev}, webpack) => {
    config = razzleHeroku(config, {target, dev}, webpack)
    // do something to config

    return config
  },
}

ربما شيء من هذا القبيل؟

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات