Composer나 artisan을 실행했을 때의 출력을 색으로 한다
초기 상태 (단색 출력)
Composer
콘솔에서 Composer를 실행할 때,
토카
artisan
콘솔에서 Laravel의 artisan 명령을 실행할 때
같은 단색으로 보기 어려운 화면이 되어 있지 않습니까?
계기
평소와 다른 환경에서 작업을 할 때
composer outdated
를 실행하면 ...뭔가 색이 붙어있다! ! 라는 것이 계기였습니다.
방법 1 "--ansi" 부여
옵션 확인
위의 Composer나 artisan을 실행했을 때의 옵션을 살펴보면,
``
/_/____ ___ ____ ____ ________ _____
///__\/__`__\/__\/__\/__/_\/_/
/////////////////_/()//
_/_/////_/./_//_//
//
Composer version 1.2.0 2016-07-19 01:28:52
Usage:
command [options] [arguments]
Options:
~중략~
--ansi Force ANSI output
``
이 ansi의 옵션을 유효하게 해 주면(자), 색 첨부로 출력됩니다.
ansi란 무엇인가는, 이 기사 가 참고가 될지도 모릅니다.
Composer
artisan
방법 2 posix_isatty 함수 사용
수수께끼는 미해결
"--ansi"옵션으로 색을 붙이는데 성공했지만, 처음에 색이 붙었을 때는, 옵션은 사용하고 있지 않습니다.
물론 bash에서
alias artisan='php artisan --ansi'
와 같은 별칭이 붙었던 것도 없습니다.Google 선생님에게 물어 보았습니다만, 듣는 방법이 나쁜지 정확한 답변을 얻을 수 없어…
소스를 읽어 보면 좋지 않다!
그렇다고 해서, Laravel의 소스를 읽고 추적한 결과, 아래와 같은 부분에 도착했습니다.
vendor/symfony/console/Output/StreamOutput.php
protected function hasColorSupport()
{
if (DIRECTORY_SEPARATOR === '\\') {
return
0 >= version_compare('10.0.10586', PHP_WINDOWS_VERSION_MAJOR.'.'.PHP_WINDOWS_VERSION_MINOR.'.'.PHP_WINDOWS_VERSION_BUILD)
|| false !== getenv('ANSICON')
|| 'ON' === getenv('ConEmuANSI')
|| 'xterm' === getenv('TERM');
}
return function_exists('posix_isatty') && @posix_isatty($this->stream);
}
CentOS를 사용하고 있기 때문에 if 문 안은 관계없이 마지막 한 줄에 주목하고 조사한 결과 posix_isatty 함수가 없다는 것을 깨달았습니다.
php-process 설치
posix_isatty 함수를 사용하려면 yum에서 php-process를 설치해야합니다.
sudo yum install -y --enablerepo=remi-php70 php-process
--enablerepo=remi-php70
부분은 자신의 환경으로 바꾸십시오.설치 후 다시 composer와 artisan을 실행하면 ...
Composer
artisan
이제 "--ansi"옵션을 붙이지 않고도 색이 표시됩니다.
Reference
이 문제에 관하여(Composer나 artisan을 실행했을 때의 출력을 색으로 한다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tak-solder/items/7d8abf27e9232d07fbba텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)