2017-10-24 2 views
0

저는 Windows 10 환경에서 Atomic 텍스트 편집기 용 플러그인을 작성하여 원자 내에서 분지 오이를 통한 테스트 실행을 허용합니다. PlatformIO- 터미널 플러그인 제공 서비스. Atom 내에서 터미널 플러그인을 활성화하면 터미널에서 pty를 통해 에뮬레이트 할 수있는 이전 프로그램을 실행할 수 있기를 기대할 수 있습니다.NODE_PATH는 원자에 의해 소비됩니다. 이미 NODE_PATH로 대체됩니다. NODE_PATH

Atom의 apm 외부에 npm을 통해 설치 한 노드 프로그램을 실행하는 데 문제가 있습니다. 그 터미널 내에서 환경 변수 NODE_PATH를 인쇄하여 더 자세히 살펴보면, Atom이 자신의 NODE_PATH 값을 먹었으며 추가되지 않고 완전히 소비되어 대체되었음을 알 수 있습니다. 해당 pty 창에서 다시 설정하는 것은 작동하지 않으며 PlatformIO 구성 터미널에서 "Shell Environment Variables"에 추가하지도 않습니다. OS에서 환경 변수를 가져올 수있는 3 개의 플러그인을 설치했으며 그 중 아무 것도 성공하지 못했습니다.

이 문제를 해결할 방법이 있습니까? 실행 모듈을 직접 액세스 할 수 있지만 다른 모듈을 호출하고 NODE_PATH를 사용합니다.

답변

1

터미널 패키지로 성공하지 못한 경우 process-palette을 시도 할 수 있습니다. 환경 변수를 포함하여 명령의 모든 세부 사항을 정확하게 정의 할 수 있습니다. 터미널 명령을 실행하기 전에 임의의 문자열을 NODE_ENV으로 설정하는 Atom 명령을 만들었습니다. 아래의 스크린 샷 : 다음

Process Palette command definition.

Process Palette environment variables.

내가 쓴 명령을 정의하는 process-palette.json 파일입니다. 시작하려면 패키지를 설치하고 다음 코드로 해당 파일을 만든 다음 Packages -> Process Palette -> Edit Configuration을 선택하십시오.

{ 
    "patterns": { 
    "P1": { 
     "expression": "(path):(line)" 
    }, 
    "P2": { 
     "expression": "(path)\\s+(line)", 
     "path": "(?:\\/[\\w\\.\\-]+)+" 
    } 
    }, 
    "commands": [ 
    { 
     "namespace": "process-palette", 
     "action": "env", 
     "command": "echo %NODE_PATH%", 
     "arguments": [], 
     "cwd": null, 
     "inputDialogs": [], 
     "env": { 
     "NODE_PATH": "wargarble" 
     }, 
     "keystroke": null, 
     "stream": true, 
     "outputTarget": "panel", 
     "outputBufferSize": 80000, 
     "maxCompleted": 3, 
     "autoShowOutput": true, 
     "autoHideOutput": false, 
     "scrollLockEnabled": false, 
     "singular": false, 
     "promptToSave": true, 
     "saveOption": "none", 
     "patterns": [ 
     "default" 
     ], 
     "successOutput": "{stdout}", 
     "errorOutput": "{stdout}\n{stderr}", 
     "fatalOutput": "Failed to execute : {fullCommand}\n{stdout}\n{stderr}", 
     "startMessage": null, 
     "successMessage": "Executed : {fullCommand}", 
     "errorMessage": "Executed : {fullCommand}\nReturned with code {exitStatus}\n{stderr}", 
     "fatalMessage": "Failed to execute : {fullCommand}\n{stdout}\n{stderr}", 
     "menus": [ 
     "env" 
     ], 
     "startScript": null, 
     "successScript": null, 
     "errorScript": null, 
     "scriptOnStart": false, 
     "scriptOnSuccess": false, 
     "scriptOnError": false, 
     "notifyOnStart": false, 
     "notifyOnSuccess": true, 
     "notifyOnError": true, 
     "input": null 
    } 
    ] 
} 
+0

나는 이것을 지금 시험해 볼 것입니다. 응답에 감사드립니다. – MadPumpkin

+1

여기에서 내 대답을보고 Atom 포럼에서 내가 그 패키지를 좋아하는 것을 볼 수 있습니다. 출력이 대화 형 쉘이 아니라는 점을 제외하고는 터미널에서하는 모든 일에 대한 스위스 군용 칼입니다. 대화 형 쉘이 필요한 것들은 대부분 내가''cmder' (http://cmder.net)에서하는 것을 선호하므로 잘 작동합니다. –

+0

직접 실행을 위해 패키지에 문자열을 동적으로 삽입하는 방법이 이미 있습니까? 필자가 작성한 플러그인의 일부는 결과 문자열을 삽입하고 실행해야하는 문자열 작성기입니다. – MadPumpkin

관련 문제