Chrome 개발자 도구-자바 스크립트 수정 및 새로 고침


195

페이지의 JavaScript를 수정 한 다음 수정 된 JavaScript 파일을 다시로드하지 않고 페이지를 다시로드 할 수 있습니까 (따라서 수정 사항을 잃을 수 있습니까)?

답변:


218

이것은 약간의 해결 방법이지만, 이것을 달성 할 수있는 한 가지 방법은 javascript 파일의 시작 부분이나 조작하려는 블록에 중단 점을 추가하는 것입니다.

그런 다음 다시로드하면 디버거가 해당 중단 점에서 일시 중지되며 소스를 변경하고 파일을 저장 한 다음 수정 된 코드를 통해 디버거를 실행할 수 있습니다.

그러나 모두가 말했듯이 다음에 다시로드하면 변경 사항이 사라집니다. 적어도 약간 수정 된 JS 클라이언트 측을 실행할 수 있습니다.


10
이것이 내가 찾고있는 대답이었습니다. 자바 스크립트 코드의 첫 번째 줄에 중단 점을 두십시오. 그런 다음 중단이 발생하면 수정 된 코드를 거기에 붙여 넣으십시오. 일시 중지하고 작동합니다!
Nicholas Blasgen

코드를 어떻게 편집하거나 붙여 넣습니까? Chrome 콘솔에서 해당 기능을 볼 수 없습니다. Elements 섹션에서 JS / HTML을 편집 할 수 있지만 자동으로 다시로드되지는 않습니다. 그러나 중단 점이 설정된 곳에서는 읽기 전용으로 나타납니다
Josh Sutterfield

불행히도 이것은 여전히 ​​좋은 해결책이 아닙니다. 추가 한 코드는 콘솔에서 사용할 수 없습니다. 예 var foo = 'bar'를 들어 스크립트를 추가 해도 foo콘솔에 노출되지 않습니다 .
AgmLauncher 2016 년

외부 스크립트는 어떻게 되나요? 브레이크 포인트가 사라지는 것 같습니다.
OlehZiniak

외부로드 된 스크립트를 수정하려는 한 작동합니다 .Chrome 또는 FireFox 디버깅 도구가 중단 점으로 실행이 중단 되더라도 인라인 자바 스크립트를 수정할 수 없습니다.
마렉

148

좋은 소식은 2018 년 3 월에 수정 프로그램이 출시 될 예정입니다. https://developers.google.com/web/updates/2018/01/devtools

"로컬 재정의를 사용하면 DevTools를 변경하고 페이지로드시 변경 사항을 유지할 수 있습니다. 이전에는 페이지를 다시로드하면 DevTools에서 변경 한 내용이 손실됩니다. 로컬 재정의는 대부분의 파일 형식에 적용됩니다.

작동 방식 :

  • DevTools가 변경 사항을 저장해야하는 디렉토리를 지정하십시오. DevTools에서 변경하면 DevTools는 수정 된 파일의 사본을 디렉토리에 저장합니다.
  • 페이지를 다시로드하면 DevTools는 네트워크 리소스 대신 수정 된 로컬 파일을 제공합니다.

로컬 재정의를 설정하려면

  1. 소스 패널을여십시오.
  2. 재정의 탭을 엽니 다.
  3. 설정 재 지정을 클릭하십시오.
  4. 변경 사항을 저장할 디렉토리를 선택하십시오.
  5. 뷰포트 상단에서 허용을 클릭하여 DevTools에 디렉토리에 대한 읽기 및 쓰기 액세스 권한을 부여하십시오.
  6. 변경하십시오. "

업데이트 (2018 년 3 월 19 일) : https://developers.google.com/web/updates/2018/01/devtools#overrides에 대한 자세한 설명은 다음과 같습니다.


12
Chrome 65가 출시되면 새로운 답변이 될 것입니다. (기능은 이미 Chrome Canary에서 사용 가능했습니다)
Micros

1
"a.js? ver = 1.2"파일이 있습니다. 재정의 폴더에 "a.js"로 저장되며 재정의로로드되지 않습니다. 매개 변수가있을 때 작동하지 않습니까? 해결 방법이 있습니까?
Ralf

의도 한대로 작동하지만 한 가지만 처리해야합니다. 원래 js를로드하려는 경우 대체 구성을 지우거나 로컬 수정 파일 (재정의를 구성하는 동안 지정한 폴더에 저장)을 삭제해야합니다.
Muhammad Murad Haider

61

자원 재정의 확장은 정확히 수행 할 수 있습니다 :

  • 바꾸려는 URL에 대한 파일 규칙을 만듭니다.
  • 확장 프로그램에서 js / css / etc를 편집하십시오.
  • 당신이 원하는대로 자주 다시로드 :)

1
내게 트릭을 주셔서 감사합니다. 그 확장 전에 Windows 용 Fiddler를 사용했습니다. 지금은 모든 플랫폼에서 원격 파일을 디버깅 할 수 있습니다.
Ahmad Alfy

소프트웨어를 이해하지 못합니다. 누군가 정확히 어떻게 설정해야하는지 설명 할 수 있습니까?
Black

0

정확한 질문에 대한 답이 아니라는 것을 알고 있지만 (Chrome Developer Tools)이 해결 방법을 성공적으로 사용하고 있습니다 : http://www.telerik.com/fiddler

(일부 웹 개발자는이 도구에 대해 이미 알고 있음)

  1. 파일을 로컬에 저장
  2. 필요에 따라 편집
  3. 이익!

여기에 이미지 설명을 입력하십시오

전체 문서 : http://docs.telerik.com/fiddler/KnowledgeBase/AutoResponder

추신. 오히려 Chrome에서 플래그로 구현하고 싶습니다. 지금은 preserve after reload할 수 없으며 포럼 및 토론 그룹은 회사 네트워크에서 차단되었습니다. :)


-8

예, dev-tools에서 "소스"탭을 열고 변경하려는 스크립트로 이동하십시오. 개발자 도구 창에서 직접 조정 한 다음 ctrl + s를 눌러 스크립트를 저장하십시오. 전체 페이지를 새로 고칠 때까지 새 js가 사용됩니다.


어떤 버전의 크롬? 예, 스크립트 내용 (페이지 자체의 스크립트는 아님)을 "편집"할 수 있지만 변경 사항은 아무런 영향을 미치지 않으며 ctrl-s / save는 스크립트를 로컬로 저장하는 것처럼 ctrl-s / save 메인 창).
davidkonrad

스크립트를 편집 할 때 버전 34를 사용합니다. 예를 들어 console.log를 클릭 이벤트 (이미 본드)에 추가하고 저장하면 콘솔에 "재 컴파일 및 업데이트 성공"이라는 메시지가 표시됩니다. -그 후 클릭 이벤트를 트리거하면 콘솔에서 로그 출력을 얻습니다.
jacksbox

페이지를 다시로드하면 로컬로 수정 된 파일이 사용되지 않은 것으로 나타납니다.
Jake Wilson

32
당신은 "예"에 저를 가졌지 만 "당신은 전체 페이지를 새로 고칠 때까지"에 저를 잃었습니다 ....
Cool Blue
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.