Soru Chrome'u otomatik olarak açmak için düğüm alabilir miyim?


Düğümün yeni sürümlerinde, düğüm denetçisi yerleşiktir ve komut kullanılarak kovulabilir node --inspect index.js. Ancak, bu her zaman adres çubuğuna takmanız gereken adresle bir komut satırı sağlar. Bunun en "güvenli" olmayabileceğini biliyorum, ancak kopyalayıp yapıştırma adımını ortadan kaldırmanın bir yolu var mı?


44
2017-12-30 15:52


Menşei


Bunu nasıl yapacağını öğrendin mi? Aynı cevabı arıyorum. Ben her zaman müfettiş bağlantısını kaybetmek web paketi sıcak yeniden yükleme ile nodemon kullanıyorum. - Adrian Moisa
@AdrianMoisa cevabımı bir göz atın. - Ali
june07.com/nim  june07.com/inspect-broke-my-workflow Zaten belirtilmiş ama bu araç işi iyi yapıyor. - 667


Cevaplar:


Chrome 60’da bir öğe var "Düğüm için özel DevTools'u aç" içinde chrome://inspect/#devices url, (düğüm çalışırken düğümlerde node.js simgesi gibi) Açılan inceleme penceresi, başlatıldığında veya yeniden başlatıldığında, node.js'ye bağlanacaktır, böylece her seferinde el ile açmaya gerek yoktur.


39
2018-04-15 22:29



Bu bahşiş için teşekkürler! Bu harika, node.js. için yerleşik bir hata ayıklama desteği var. Parlak. - Zoltan
@Zoltan'a hoş geldiniz, bence bu sürüm 57'de tanıtıldı. - Ali
Bu harika bir şeydir, ancak araçlar bittikten sonra dev-araçların işlemden ayrılması için bir yol var mı? Süreç sonunda Waiting for the debugger to disconnect... konsolda ve zorunda Ctrl + c veya döndürmek için dev-tools penceresini kapatın. - Chris R
@ChrisR Intellij'da böyle bir mesaj alamıyorum. - Ali
Bunu da nodemon ile eşleştirebilir, --inspect düğüme kadar bayrağı nodemon -- --inspect - alxndr


Aynı problem için bir cevap arıyordum ve iki güzel araç keşfettim:

NIM daha gelişmiş görünüyor, mevcut kurulumumla çok güzel oynayan düğüm örneklerini otomatik olarak algılayabiliyor. kullanırım nodemon Bir dosya değiştirildiğinde, düğüm sunucusunu otomatik olarak yeniden başlatır. Bundan da öte, HMR (Hot module reload) ile Webpack'i kuruyorum ve toplam kapsama sahibim. /public ve /server klasörler. Nasıl kurulacağını öğrenmek 2 hafta sürdü ama şimdi ödemesi başlıyor.

npm install -g nodemon
npm install -g ts-node // In case you use typescript

nodemon.json

{
    "verbose": false,
    "watch": ["server/**/*.ts"],
    "ext": "ts js json",
    "ignore": ["server/**/*.spec.ts"],
    "exec": "set DEBUG=app:*,-not_this & ts-node --inspect --debug-brk server/main.ts"
}

set DEBUG=app:*,-not_this çıkışını sağlamak için kullanılır Visionmedia hata ayıklama

(!) Şu anda var sorun ile debug() krom denetçisinde metin yazdırmıyor, ancak şimdilik en azından metin komut satırında görülebilir. Nesneleri genişletmek için hata ayıklama ifadelerini ve denetçisini görmek için komut satırını kullanıyorum.

Düzenle

Bu arada oldukça çirkin bir düzeltme buldum ama işi kısmen yapıyorum ... Renk meta verileri göz ardı ediliyor ve daha kötüsü dizilerde işleniyor. Bu yüzden okunabilirliği çok olumsuz etkiliyor. Ama hey ... bazı günlükler çıkıyor, daha iyi bir şey yok.

Yakın zamanda yaşadığım bir diğer konu da NIM'in düzgün bir şekilde bağlanmadığı. Sonunda gerçek IP adresini girmem gerektiğini anladım. 127.0.0.1 yerine NIM yapılandırma panelinde localhost

debugOff Sadece tekrar geri gelene kadar geçici olarak kapatılan günlükleri açmak için doğaçlama bir yol.

// Debug
let debugOff = (...any: any[]) => { }, debug = require('debug')('vs:ServerApp');

// Workaround for debug working with node inspector in chrome
let Debug = require('debug');
Debug.log = console.log.bind(console);


/** 
 * Listen for incoming requests
 */
public listen(): void {
    debug('Start server');
    debugOff('Server port:', SERVER.port); // This would be usually too verbose

6
2018-03-25 15:20





Bunu yapmak için ayrı bir yardımcı program var kontrol işlemama yerleşik destek yok.

Görebildiğim kadarıyla, denetçiyi başlatan ve bu hata ayıklama mesajını çıkaran (C ++) kodu burada:

https://github.com/nodejs/node/blob/master/src/inspector_socket_server.cc

Özellikle işlevler InspectorSocketServer::Start, PrintDebuggerReadyMessage

Bu kodda bir tarayıcıyı otomatik açmak için herhangi bir özellik görmüyorum (v7.4'ün yazıldığı sırada) ancak aşağıdakilerden birini öneririm:

  1. Burada bir özellik isteğini aç https://github.com/nodejs/node/issues
  2. özelliği kendiniz uygulayın ve bir PR gönderin
  3. kullanım kontrol işlem

5
2018-01-31 14:58



İşe yarıyor. debug-brk da çalışıyor. inspect --debug-brk index.js - Rob


Bu olmasa da özellikle soruyu cevaplayın, soruyu daha az alakalı hale getirir - bağlandıktan sonra tekrar bağlanmanıza gerek yoktur.

Tüm önerileri burada ve diğer gönderileri denedim Örneğin.ancak denetleyici saatinin yeni bir GUID oluşturduğunda hata ayıkla-in-a-sekmesinin bir daha asla bağlanamayacağını öğrendim - sekmedeki adres güncel değil.

Ancak Chrome (58) standart Geliştirici Panosunda, uygulamanın yeniden nasıl oluşturulduğu veya yeniden başlatıldığına bakılmaksızın sihirli bir şekilde yeniden bağlanan yeni bir "başlıksız" pencere açan yeni bir bağlantı buldum.

Konular> Ana altında, "Düğüm örneği kullanılabilir. Bağlan" seçeneğini görmelisiniz.enter image description here

Yeni pencereyi bir sekmeyi tercih ettiğimden daha az kullanılabilir buluyorum, ancak otomatik yeniden bağlanma o kadar güvenilir ki bununla yaşayacağım!

Bulduğum tek dezavantajı, yeniden bağlandığında tüm kesme noktalarını temizlemesidir.

GÜNCELLEŞTİRME: Chrome Hata Ayıklama> Kaynaklar> Konular> Ana altındaki "Bağlan" bağlantısını kullanarak birkaç hata ayıklama penceresini açarsanız, yeniden yüklenen ayrılma noktaları sorununu geçici olarak çözmenin mümkün olduğunu buldum. Birçoğu boş kalacak ve içinde listelenen herhangi bir kaynağa sahip olmayacak, ancak düzgün şekilde bağlanmış olanı en sonunda yer imlerini koruyacaktır. Bu hack'ın neden işe yaradığını bilmiyorum - yanlışlıkla keşfettim.

Ayrıca Bu Hackernoon makalesi sorunu tartışır, ve araç NIM bir çözüm olarak ve müfettişi yönetmek için genel bir gelişme olarak tavsiye edilir (aynı zamanda Adrian Moisa'nın cevabında da önerilmektedir).

Güncelleme (08/2017)

Görünüşe göre Chrome v60, DevTools for Node'u değiştirdi ve bağlantıyı JS dev araçlarının sol üst çubuğundaki küçük yeşil kutu simgesine taşıdı. Node Devtool icon

Ancak artık kırılma noktası kesmek artık birden fazla pencere açamayacağından işe yaramaz. Ne yazık ki, ortadan kaybolan ayrılma noktalarını da düzeltmediler. Şimdi kapatmaya ve her defasında tekrar açmaya geri döndüm ... Pencerenin konumunu bile hatırlamadığı için bu çok can sıkıcı bir durum (Ben bunu ön uç JS hata ayıklama penceresinden ayırt etmek için taşımak istiyorum) Aynı anda tam yığın olarak kullanmak ...), ya da ben zaten tüm bu kaynak dosya sekmelerini kapattığım gerçeği (şimdi ranting durdurmak).


2
2018-06-07 08:39





Evet!! kullanım Node.js V8 - Bilgi Yöneticisi (NiM) Chrome eklentisi, çalıştırdığımda Chrome'u otomatik olarak açar node --inspect-brk app

Bir yan not - Visual Studio Code ile hata ayıklama bir esinti haline geldi


2
2017-09-17 08:51





Birden fazla sebepten dolayı bu mümkün değildir.

  1. Chrome'u (veya diğer "masaüstü" uygulamasını) başlatmak platform bağımlıdır. Çekirdek Düğüm bunu yapamaz ve gereksiz karmaşıklık ekleyecektir (ör., Yükleme konumunu keşfetmeyi, yüklenmemiş olan Chrome'la uğraşmayı düşünmeyi vb.).
  2. Bu, Düğüm'ü Chrome'a ​​bağlar; bu da arzu edilmez.
  3. Chrome, devtools URL'sini komut satırından iletmenin bir yolunu sağlamaz.

1
2018-03-29 00:19



Söylediklerin tamamen doğru, ama tamamen farklı bir soruya cevap veriyor. Node'un Chrome örneklerini ele geçirmesine izin vermek yerine, Chrome'u etkin Node oturumlarını keşfedebiliriz. - jpeltoniemi
@Pichan Chrome zaten bunu yapıyor. - Eugene
tam olarak benim nokta. - jpeltoniemi


Şimdi modern kromda (V64'üm var, daha düşük versiyonları bilmiyorum)yazarak

chrome.send('open-node-frontend')

krom konsolunda, nodejs işlemine otomatik olarak bağlanan bir pencere açar
(ayrıca erişilebilir chrome://inspect)

Ayrıca müfettişi programatik olarak başlatabilir ve kapatabilirsiniz.
(doktora bakın https://nodejs.org/dist/latest/docs/api/inspector.html)

Veya kullanarak kill -USR1 $PID nerede $PID düğüm işleminiz pid
(ama bunu nasıl durduracağımı bilmiyorum ve ana bilgisayar ve bağlantı noktasını belirtmek mümkün değil. localhost:9229)


1
2018-02-03 12:45



aktif sekme olmalı chrome://inspect için chrome.send çalışmak - aleclarson


OSX kullanıcıları için harikaları yükleyin krom cli ile brew install chrome-cli.

Bunu senin içine koy ~/.bashrc:

node-inspect() {
  local TAB_ID=`chrome-cli open 'chrome://inspect/#devices' -n | head -n 1 | awk '{ print $2 }'`
  sleep 0.5
  chrome-cli execute "document.getElementById('node-frontend').click()" -t $TAB_ID && chrome-cli close -t $TAB_ID
  node --inspect-brk $@
}

Şimdi yapabilirsin: node-inspect ./server --foo --bar


1
2018-04-07 18:18



Homebrew için Boo ... Eğer yapmazsam - Jackie
@Jackie Github bağlantısını kontrol edin. Önceden oluşturulmuş ikili dosyalar var. - aleclarson
Burada macOS kullanıcısı, bu gerçekten zaman kazandırır, teşekkürler! - Andy E