Sul mio sito Web di produzione, ho compilato Javascript.Come sostituire Javascript del sito Web di produzione con Javascript locale?
<script src="/js/mycode.min.js"></script>
Sarebbe molto comoda per il debug, se ho potuto fare il mio browser sostituire quello con
<script src="http://localhost/js/mycode1.js"></script>
<script src="http://localhost/js/mycode2.js"></script>
...
So che avrei potuto manipolare il DOM usando qualcosa come userscripts Greasemonkey, ma non riuscivo a venire con una soluzione che impedirebbe l'esecuzione di "mycode.min.js".
Qualche idea?
Dovrebbe funzionare. Ma cercherò altre soluzioni proxy che siano più facili da programmare e gratis. Qualcuno può consigliarne uno buono per linux/osx? –
UPDATE: Mi sono scritto un piccolo proxy che inoltra tutto dal mio server di produzione e stringa sostituisce lo specifico
Che dire di utilizzare un sottodominio come
http://static.example.com
per file statici (ad esempio file .js) e la modifica del file host?Aggiungere la seguente riga alla HostFile (
/etc/hosts
per Linux,C:\WINDOWS\System32\drivers\etc\host
):Naturalmente hai eseguire un server con i file dal
http://static.example.com/
su127.0.0.1
.Un'altra soluzione è l'utilizzo di un server proxy (locale) come Privoxy per il reindirizzamento di
http://example.com/js/
ahttp://localhost/js/
.fonte
2010-10-14 18:56:45 Lekensteyn
Se solo i dipartimenti IT non si chiudeva l'accesso in modifica a tH è un file nei luoghi di lavoro dall'inferno per ragioni di 'sicurezza'. > :) – epascarello
Buona idea. Lo farò. Ma questa soluzione implica ancora avere tutto il codice JS in un unico file. Sarebbe perfetto per averli separati tutti. –
Assumendo che lo script sono semplicemente la versione grezza del file di produzione, si può semplicemente rompere aprire il vostro debugger preferito console JS e importare i vostri script:
In questo modo si sovrascrive le funzioni e le variabili originariamente definite . Dovrai rieseguire manualmente
window.onload
. Se hai uno script che viene eseguito immediatamente o caricato che cambia molto sulla pagina, potresti avere del lavoro da fare per riportarlo allo stato originale.Buona fortuna!
fonte
2010-10-14 19:47:56 gilly3
Questa non è una grande soluzione se il codice originale manipola la pagina o aggiunge gestori di eventi. Finirai per causare più problemi. – epascarello
Certo ... Ho detto tanto nella mia risposta. Ma se tutto quello che devi fare è eseguire il debug del tuo codice, è sufficiente sostituire le funzioni con questa tecnica per poter impostare i punti di interruzione nel codice e eseguirne il debug. – gilly3
Sebbene la soluzione di epascarello funzioni, esiste una soluzione più rapida per il debugging dei file minificati. Prendi in considerazione l'utilizzo di JavaScript source maps. I moderni Firefox e Chrome li supportano.
L'idea della mappa sorgente è dire browser dove trovare la versione non ancora terminata. Quando avvii il debug negli strumenti di sviluppo del browser, il browser carica la versione non terminata dello script e mostra il codice JavaScript di facile lettura (o codice che hai compilato in JavaScript) nel debugger.
fonte
2013-09-27 07:09:19
Solo un rapido commento perché non mi era chiaro: la versione minificata è ciò che viene analizzato ed eseguito non nella versione non ancora terminata. –
@DanielSokolowski sì, hai ragione.Browser esegue la versione minificata, ma mostra quella originale (non ridotta) negli strumenti DEV, in modo da poter eseguire l'esecuzione passo passo e osservare le variabili. –
Per aggiungere un NUOVO file che si può usare qualcosa come uno di un altro post:
Questo script tampermonkey può sostituire qualsiasi file JS su una pagina web con la vostra abitudine uno da un dominio:
fonte
2016-05-10 21:11:31
Tentativo interessante. Quando eseguo questo codice non raggiunge lo stadio 3. Qualche idea sul perché? – Clone
Raggiunge lo stadio 2? –
Grazie per la risposta! Sì, lo fa davvero. In realtà ho creato una discussione su questo problema http://stackoverflow.com/q/43444796/6130540. – Clone
Aggiungi qualcosa al tuo URL per distinguere tra il nostro contesto dev e prod; esempio: http://url_of_prod.com
http://url_of_dev.com?debug=true
e poi, utilizzare alcuni javascript per verificare se il GET variabile di debug è acceso o meno o controllare l'URL con
se (window.location.host.indexOf ('url_of_dev ')> -1) ...
utilizzare, quindi una funzione del carico per caricare o no il file, come in questo esempio: http://www.softpeople.fr/replaceswitch-dev-local-production-website-javascript-during-debug/
fonte
2016-11-22 15:19:31 Ademus