2017-12-30 31 views
0

그래서 며칠 동안 VS 코드 (repo found here)에 대한 언어 지원 확장 프로그램을 작성했습니다. 나는 많은 버그를 겪었습니다. (실제로는 특정 단어가 강조 표시되기를 바라는 사람에게는 문서가 그다지 좋지 않습니다 ...). 지금 내가 가지고있는 질문 중 하나가 무엇인지 찾을 수없는 주된 것은 mainpackage.json 파일의 항목입니다. 질문과 등언어 확장을위한 package.json의 "main"은 무엇입니까

는 :

  1. 나는 main 파일로 디렉토리를 지정하는 this 알고있다. 해당 파일의 기능은 무엇입니까?

  2. 내가 노력하고 무엇을 을 알아 내기 위해 여러 가지 확장의를 통해 검토 한 결과,하지만 난 디렉토리 경로 모두 out라는 어떤 디렉토리가 없음에도 불구하고, "./out/......"로 를 시작하는 것으로 나타났습니다. VS code documentation에는 out이라는 디렉토리가 있습니다. 그렇다면 out은 무엇입니까?

  3. 나는 Yeoman 확장 생성기를 사용했으며 main 파일 또는 out 디렉토리를 포함하지 않았습니다. 확장 기능에 이러한 기능이 있어야합니까? 내가 뭔가 망쳐 놨니?

질문이 있으시면 알려주십시오. 감사!

편집 : 나는 질문에 잊었 :

내가 약 main 신경 주된 이유는 내가 activationEvents 필드를 사용하는 것을 시도하고 있다는 것입니다 및 VS 코드가 activationEventmain 지정해야합니다 모두 말한다. 이 경우 main은 실제로 무엇을해야합니까?

+0

주 파일은 프로젝트에서 실행될 첫 번째 파일입니다. 그래서'node .'를 실행하면 그 파일이 실행될 것입니다. 'out' 디렉토리는 컴파일 프로세스의 출력을위한 디렉토리입니다. 프로젝트를 만들면 지정된 폴더에서 생성 된 패키지를 찾을 수 있습니다. 메인 또는 아웃을 포함시키지 않으면 아무 프로젝트도 필요하지 않습니다. –

+0

Thanks @ CristianTraìna! 문제 설명에 중요한 내용을 추가하는 것을 잊어 버렸습니다. 왜 내가 '주'를 알아 내려고하는지 설명합니다. tl, dr, 매니 페스트 파일에서'activationEvents' 필드를 사용하려면 VS 코드가'main'을 요구합니다. 왜 그런가? 또는 이벤트가 "activationEvents"에 관심을 가져야하는지 여부 필자는 주로 올바른 파일 형식을 열 때 구문 강조를 원합니다 (몇 가지가 있습니다). – u2berggeist

답변

1

main은 디렉토리를 지정하지 않고 확장 코드 (적어도 activate 기능과 같은 주 코드)가 포함 된 파일을 지정합니다. activationEvents을 통해 활성화 할 수있는 것들을 구현해야하는 곳, 맞습니까? index.js 파일이 있거나 파일 이름을 확인하는 데 사용되는 로컬 package.json 파일이있는 경우 폴더를 지정할 수도 있습니다. 나는 그 자신을 시도하지 않았다. 파일 이름을 사용하는 것이 더 쉽습니다.

설치된 확장명에서 볼 때 코드 파일을 지정하려면 여기에 명심해야합니다. TS 프로젝트가있을 때 코드가 확장이 실행되기 전에 JS로 이동됩니다. 필수 사항은 아니지만이 변환 파일의 기본 표준은 out 폴더입니다 (package.json 파일 바로 옆). 이 폴더는 소스 폴더를 반영하지만 추출 된 JS와 맵 파일을 포함합니다.

출력 폴더는 명령 줄 (예 : tsc를 수동으로 실행할 때) 또는 tsconfig.json 파일 (compilerOptions ->outDir 참조)에서 지정됩니다.

사이드 참고 : 주요 ./ 정말 아웃 폴더에 대한 필요하지만 선두 ./node_modules를 통해 모듈의 해상도를 피할 곳, (수입을 해석 할 때와 같은) 다른 상황에서 특수 처리가 트리거되지 않습니다. 따라서 사람들은 일관성을 위해 out 대신 ./out을 사용하는 경향이 있습니다.

yeoman 생성 파일에 대해 : 저는 잠시 사용하지 않았으며 extension.ts 파일을 생성 할 것이라고 생각했습니다 (package.json의 주 파일로 입력). 그런 일이 발생하지 않으면 버그를 맞았거나 잘못된 행동을했을 수 있습니다. 어쨌든 파일을 만들고 main 항목에 추가하는 데는 몇 초 밖에 걸리지 않습니다.

+0

모든 정보를 제공해 주셔서 감사합니다 !! 나는 그것의 대부분을 따라 다닌다. 그러나 나는 무엇을 다음에해야하는지에 관해서 붙이게된다. Yeoman이 내 디렉토리에 파일을 넣지 않았기 때문에'extension.ts' 파일을 빨리 만들 수 있다고 언급했습니다. 'extension.ts '에 무엇인가가 있어야합니까? 파일 경로에서 특정 위치로 이동해야합니까? – u2berggeist

+0

또한 앞으로는 여기 보이는 사람들에게 FYI 요요 코드 생성기 GitHub에 문제를 제출했습니다. [여기] (https://github.com/Microsoft/vscode-generator-code/issues/99)에서 볼 수 있습니다. – u2berggeist

+0

[이 설명] (https://code.visualstudio.com/docs/extensions/)에 따르면 yocode # _new-extension-typescript), .md 파일에는 extension.ts 파일 (또는 JS 프로젝트의 경우 extension.js)이 있어야합니다 :'Templates out package.json file and extension main file .' –