> 백엔드 개발 > PHP 튜토리얼 > Laravel CSS-Minify 명령을 만드는 방법

Laravel CSS-Minify 명령을 만드는 방법

Joseph Gordon-Levitt
풀어 주다: 2025-02-21 08:30:14
원래의
308명이 탐색했습니다.

Laravel CSS-Minify 명령을 만드는 방법 이 기사에서는 Laravel의 Artisan Command Line 도구를 사용하는 방법과 사용자 정의 명령을 만드는 방법을 배웁니다. 이 기사를 최대한 활용하려면 Laravel Framework에 익숙해야합니다.

. 키 테이크 아웃

Laravel Artisan 활용 : Laravel의 Artisan Command-Line 도구를 활용하여 CSS 미니 화를위한 맞춤 명령을 작성하고 웹 개발 프로젝트의 워크 플로 효율성 향상. Custom Command Creation : 'PHP Artisan Command : 이름 지정, 저장 및 네임 스케이싱 옵션으로 MAKE'를 사용하여 사용자 정의 명령을 쉽게 작성하여 Laravel 애플리케이션에서 맞춤형 기능을 허용합니다. <: :> 미니 화 옵션 : CSS 파일 연결 및 주석 보존을 처리하기위한 명령의 옵션 구현, 다양한 개발 요구에 따라 유연성을 제공합니다. 명령 등록 : Laravel의 장인 시스템에 새 명령을 등록하여`artisan.php` 파일 또는 패키지 개발을위한 서비스 제공 업체를 통해 실행 가능합니다. 실행 및 출력 : 명령을 사용하여 CSS 파일을 조정하고 연결 및 주석 보존을위한 옵션 플래그를 사용하고 실행 프로세스 중에 유익한 메시지로 명령 피드백을 향상시킵니다.

우리는 무엇을 구축하고 있습니까

이 튜토리얼에서 우리는 CSS 자산을 조정하라는 명령을 구축 할 것입니다.

    output_path : (필수) 최소화 된 파일을 저장하는 경로 (style.css-> style.min.css). file1 ... filen : (필수) 파일 목록 -댓글 : (선택 사항) 주석을 유지하기 위해이 옵션을 추가하십시오 <: :>-concat : (선택 사항) 조정 된 파일을 All.min.css라는 하나의 파일로 연결합니다.
  • 라 라벨 명령이란 무엇입니까
  • Artisan은 Laravel의 명령 줄 유틸리티의 이름입니다. 사전 정의 된 명령 세트가 제공되며 PHP 장인 목록으로 나열 할 수 있습니다. 특정 명령에 대한 도움말을 표시하려면 PHP Artisan Help Command를 사용할 수 있습니다. CSS 미니 파이어 명령 생성 장인 명령을 만들려면 명령을 사용할 수 있습니다. 이 명령은 하나의 인수를 받아들입니다
  • 이름 : 명령의 클래스 이름.
  • <:> 및 세 가지 옵션 : -명령 : 명령을 실행하기 위해 입력 해야하는 이름. -경로 : 기본적으로 명령은 앱/명령 폴더 내에 저장되지만이 옵션으로이를 변경할 수 있습니다. -네임 스페이스 :이 옵션을 사용하여 명령 세트를 네임 스페이스 할 수 있습니다 (예 : 명령 명령에서 : make 명령은 명령 네임 스페이스 아래에 있습니다.
  • 이제 우리의 명령을 만들려면 PHP Artisan 명령을 사용합니다. cssmincommand make -command = cssmin은 앱/명령 디렉토리 내에 cssmincommand.php 파일을 만듭니다.
  • <span>cssmin 'output_path' 'file1'...'fileN' --comments --concat</span>
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    우리의 cssmincommand 클래스는 IlluminateConsoleCommand를 확장하고 두 가지 방법 (getArguments, getOptions)을 재정의합니다.

    getArguments :이 함수는 명령에 전달되어야하는 인수 배열을 반환합니다 (예 : CSSMIN 명령으로 전달하는 파일 목록). <:> getOptions : 명령으로 전달할 수있는 옵션 또는 스위치 목록을 반환합니다. (예 : -코멘트).

    참고 : 옵션은 값을 가질 수 있거나 없을 수 있습니다. --- 크는 명령에 전달되는 경우 true를 반환하는 플래그 일뿐 아니라 -ouptput = 'public/assets'는 값을 반환합니다. 명령이 실행되면 화재 방법이 호출되므로 명령 논리를 넣어야하는 곳입니다. 명령을 등록 당신이 우리의 명령을 실행하려고한다면 PHP Artisan Cssmin 'Args' '명령을받을 수 있습니다. "cssmin"은 정의되지 않습니다. 명령을 등록하려면 Artisan.php 파일에 추가해야합니다.
      artisan.php 파일에 명령을 넣고 싶지 않다면 별도의 파일을 만들어 포함시킬 수 있습니다. 또는 패키지를 작성하면 서비스 제공 업체에 등록 할 수 있습니다.
    • 인수 getArguments 메소드에서는 출력 및 파일을 정의합니다.
    • 인수를 정의하려면 값 배열을 전달해야합니다.
    • 이름 : 인수를 검색 할 때 사용할 키 이름
    모드 : 세 가지 옵션 중 하나를 가질 수 있습니다 inputargument :: 필수 : ​​인수가 필요합니다. inputArgument :: 선택 사항 : 인수는 선택 사항입니다 inputArgument :: is_array : 인수는 여러 값을 수락합니다 (예 : file1 ... filen) 그러나 inputargument :: is_array |처럼 결합 할 수 있습니다 inputargument :: 필수 (인수가 필요하며 배열이어야합니다) 설명 : 명령 도움말을 인쇄 할 때 유용합니다. defaultValue : 인수가 제공되지 않은 경우

    따라서 우리의 getArguments 메소드는 다음과 같습니다

    참고 : IS_ARRAY 인수를 사용하면 반환 된 인수 배열에서 마지막 인수가되어야합니다. (분명히).

    옵션 CSSMIN 명령에는 두 가지 옵션 만 있습니다. 옵션을 정의하기 위해 배열을 전달합니다

    이름 : 옵션의 이름 (예 : 댓글). <: :> 바로 가기 : 옵션의 짧은 버전 (예 : -Verbose 및 -v). 모드 : 4 가지 옵션 중 하나 일 수 있습니다 (inputoption :: value_is_array, inputoption :: value_optional, inputoption :: value_required, value_none), 처음 세 값은 인수와 유사합니다. value_none : 옵션이 부울 플래그 (예 : -Versbose)임을 나타냅니다.

    설명 : 명령 도움말을 인쇄 할 때 유용합니다 defaultValue : 옵션 값이 제공되지 않은 경우

    그래서 우리의 getOptions 방법은 다음과 같습니다

    <span>cssmin 'output_path' 'file1'...'fileN' --comments --concat</span>
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    명령을 실행 우리의 화재 방법이 불리는 경우 우리는 논쟁과 옵션을 수집해야합니다. 우리는 우리를 위해 그렇게하기 위해 별도의 기능을 할 수 있습니다 :

    인수와 옵션 방법은 핵심을 인수로 삼고 적절한 값을 반환합니다. . 우리의 예제를 깨끗하고 단순하게 유지하기 위해이 간단한 기능을 미니 화 과정을위한 작은 수정으로 사용합니다.

    이제 우리의 주장 (파일)을 처리하려면 작업을 수행하기 위해 별도의 방법을 만들 것입니다.

    마지막으로, 우리의 화재 방법은 두 가지 방법 만 호출 할 것입니다 :
    <span>use Illuminate<span>\Console\Command</span>;
    </span><span>use Symfony<span>\Component\Console\Input\InputOption</span>;
    </span><span>use Symfony<span>\Component\Console\Input\InputArgument</span>;
    </span>
    <span>class CssminCommand extends Command{
    </span>    <span>protected $name = 'cssmin';
    </span>    <span>protected $description = 'Command description.';
    </span>    
        <span>public function __construct(){
    </span>		<span><span>parent::</span>__construct();
    </span>	<span>}
    </span>    
        <span>public function fire(){
    </span>		<span>//
    </span>	<span>}
    </span>	
    	<span>protected function getArguments(){
    </span>		<span>return array(
    </span>			<span>array('example', InputArgument<span>::</span>REQUIRED, 'An example argument.'),
    </span>		<span>);
    </span>	<span>}
    </span>    
    	<span>protected function getOptions(){
    </span>		<span>return array(
    </span>			<span>array('example', null, InputOption<span>::</span>VALUE_OPTIONAL, 'An example option.', null),
    </span>		<span>);
    </span>	<span>}
    </span><span>}</span>
    로그인 후 복사
    로그인 후 복사

    팁 : 호출 메소드를 사용하여 외부 명령을 실행할 수도 있습니다.

    명령을 테스트하기 위해 일부 CSS 파일을 공개/CSS 디렉토리에 복사 한 다음 명령을 실행합니다.

    첫 번째 명령은 public/css 디렉토리에서 두 개의 파일 (style.min.css, responsive.min.css)을 만듭니다. 우리는 --comments 및 --concat 플래그를 사용했기 때문에 댓글이 남은 두 파일이 포함 된 All.min.css라는 파일을 얻을 것입니다. 우리의 명령은 매우 설명이 아니며 메시지 나 알림을 제공하지 않습니다!
    <span>Artisan<span>::</span>add( new CssMinCommand );
    </span>
    <span>//or through the container
    </span><span>Artisan<span>::</span>add( App<span>::</span>make("CssMinCommand") );</span>
    로그인 후 복사
    명령 개선 우리가 계속하기 전에, 최종 Github 리포지토리에서 나는 당신이 각각을 전환하고 테스트 할 수 있도록 명령에 대한 새 태그를 만들 것입니다. 명령을 약간의 장점으로 만들기 위해 Laravel은 우리에게 출력 함수를 제공합니다.

    이것은 출력 :

    <span>array( 'name', 'mode', 'description', 'defaultValue' )</span>
    로그인 후 복사
    메시지 만 표시하는 것 외에는 사용자에게 정보를 요청할 수 있습니다.

    <span>protected function getArguments(){
    </span>        <span>return array(
    </span>            <span>array(
    </span>                <span>'output', 
    </span>                <span>InputArgument<span>::</span>REQUIRED,
    </span>                <span>'Path to output directory'
    </span>            <span>),
    </span>            <span>array(
    </span>                <span>'files', 
    </span>                <span>InputArgument<span>::</span>IS_ARRAY | InputArgument<span>::</span>OPTIONAL ,
    </span>                <span>"List of css files to minify"
    </span>            <span>),
    </span>        <span>);
    </span>    <span>}</span>
    로그인 후 복사
    확인 메소드는 사용자가 y/n과 다른 것을 입력 할 경우 두 개의 인수, 질문 메시지 및 기본값을 취합니다. ASK 메소드는 사용자에게 y/n 대신 입력을 요청하고 비어 있으면 기본값이 반환됩니다. 선택 방법은 사용자에게 선택할 수있는 번호 목록을 제공하고 비어 있으면 기본값이 반환됩니다. . 비밀 메소드는 사용자에게 질문을 제기하고 타이핑을 숨기지 만 사용자 입력이 반환됩니다.

    실제로 Laravel은 Symfony의 콘솔 API를 더 간단하고 장황하게 만들고 있으며, 파기를 원한다면 훨씬 더 많은 것이 있습니다. 우리의 명령을 더 장황하게 만들고 수행 된 작업에 대해 사용자를 계속 업데이트하겠습니다.

    우리의 기능은 이제 무슨 일이 일어나고 있는지 추적하기 위해 유용한 메시지를 인쇄합니다.
    <span>array('name', 'shortcut', 'mode', 'description', 'defaultValue')</span>
    로그인 후 복사

    참고 : 이것은 GitHub 저장소에서 우리의 명령의 v2로 태그됩니다. 응용 프로그램을 만들 때 사용 가능한 경로 목록 (PHP 장인 경로)을 버리는 데 사용됩니다.
    <span>protected function getOptions(){
    </span>        <span>return array(
    </span>            <span>array('comments', 'c', InputOption<span>::</span>VALUE_NONE, 'Don\'t strip comments' , null),
    </span>            <span>array('concat', null, InputOption<span>::</span>VALUE_NONE, 'Concat the minified result to one file' , null),
    </span>        <span>);
    </span>    <span>}</span>
    로그인 후 복사

    Symfony는 그러한 테이블을 쉽게 인쇄 할 수있는 함수를 제공합니다. 설명서를 확인하십시오. 다음에 Symfony Console Helpers를 사용할 수있는 방법을 볼 수 있습니다.

    Symfony Console Helpers 사용 일부 Symfony 헬퍼의 사용을 설명하기 위해 우리는 진행 영역을 사용하여 사용자가 작업 진행 상황에 대한 업데이트를 계속할 것입니다. init 방법의 끝에서 우리는 헬퍼 셋의 진행 상황이 필요합니다. 그런 다음 진행률 표시 줄을 시작합니다.

    .

    시작 방법은 두 인수를 받아들입니다. $ this-> 출력은 Symfony 콘솔의 콘솔 인스턴스입니다. 두 번째 인수는 최대 단계 수입니다 ProcessFiles 메소드에서 파일을 처리 할 때마다 진행률 표시 줄을 한 단계로 발전시키고 작업이 완료되면 진행률 표시 줄을 종료하고 알림 메시지를 인쇄합니다.

    여러 파일로 명령을 시도하거나 수면 함수 라인을 사용하여 라이브 효과를 볼 수 있습니다.

    참고 :이 버전은 최종 저장소에서 v3로 태그됩니다.

    결론 이 기사에서는 Laravel 명령을 생성하고 확장하는 방법을 배웠습니다. Laravel에는 탐색 할 수있는 많은 내장 명령이 있으며 Github의 최종 저장소를 확인하여 최종 결과를 테스트 할 수도 있습니다. 질문? 댓글? 더 많은 장인 명령 자습서를보고 싶습니까? 알려주세요! Laravel CSS Minify Command의 자주 묻는 질문 (FAQ) Laravel에서 CSS를 조정하는 목적은 무엇입니까?
    <span>cssmin 'output_path' 'file1'...'fileN' --comments --concat</span>
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사

    Laravel에서 CSS를 미수하는 것은 웹 사이트 나 응용 프로그램을 최적화하는 데 중요한 단계입니다. 여기에는 공간, 주석 및 라인이 CSS 파일에서 나누는 것과 같은 불필요한 문자를 제거하는 프로세스가 포함됩니다. 이 프로세스는 CSS 파일의 크기를 줄여서 클라이언트로 전송 해야하는 데이터의 양을 줄입니다. 이것은 웹 사이트 또는 응용 프로그램의로드 시간을 크게 향상시켜 더 나은 사용자 경험을 제공 할 수 있습니다.

    Laravel Mix는 CSS 미니 화에 어떻게 도움이됩니까?

    <span>use Illuminate<span>\Console\Command</span>;
    </span><span>use Symfony<span>\Component\Console\Input\InputOption</span>;
    </span><span>use Symfony<span>\Component\Console\Input\InputArgument</span>;
    </span>
    <span>class CssminCommand extends Command{
    </span>    <span>protected $name = 'cssmin';
    </span>    <span>protected $description = 'Command description.';
    </span>    
        <span>public function __construct(){
    </span>		<span><span>parent::</span>__construct();
    </span>	<span>}
    </span>    
        <span>public function fire(){
    </span>		<span>//
    </span>	<span>}
    </span>	
    	<span>protected function getArguments(){
    </span>		<span>return array(
    </span>			<span>array('example', InputArgument<span>::</span>REQUIRED, 'An example argument.'),
    </span>		<span>);
    </span>	<span>}
    </span>    
    	<span>protected function getOptions(){
    </span>		<span>return array(
    </span>			<span>array('example', null, InputOption<span>::</span>VALUE_OPTIONAL, 'An example option.', null),
    </span>		<span>);
    </span>	<span>}
    </span><span>}</span>
    로그인 후 복사
    로그인 후 복사
    Laravel 믹스는 유창한 도구입니다. Laravel 애플리케이션을위한 웹 팩 빌드 단계를 정의하기위한 API. 그것은 미니 화를 포함한 몇 가지 공통 CSS 및 JavaScript 프리 프로세서를 지원합니다. Laravel Mix를 사용하면 불필요한 문자를 수동으로 제거하지 않고도 단일 명령으로 CSS 파일을 쉽게 미치실 수 있습니다. 이것은 시간을 절약 할뿐만 아니라 CSS 파일을 가능한 한 최적화 할 수 있도록합니다.

    Laravel Mix를 사용하지 않고 CSS 파일을 완료 할 수 있습니까?

    예, Laravel을 사용하지 않고 CSS 파일을 완료 할 수 있습니다. 혼합. CSS 파일을 최소화하는 데 도움이되는 몇 가지 온라인 도구와 NPM 패키지가 있습니다. 그러나 Laravel 믹스 사용은 Laravel과 완벽하게 통합되며 CSS 파일을 관리하고 최적화하는 간단하고 편리한 방법을 제공하므로 권장됩니다. Laravel에서 CSS를 조정하는 동안 내가 직면 할 수있는 잠재적 인 문제는 무엇입니까?

    Laravel에서 CSS를 조정하는 것은 일반적으로 간단한 프로세스이지만 CSS 파일에 구문 오류가 포함 된 경우 문제가 발생할 수 있습니다. 이러한 오류로 인해 미니 화 과정이 실패하여 최적화되지 않은 CSS 파일이 발생할 수 있습니다. 따라서 CSS 파일을 조정하려고 시도하기 전에 CSS 파일이 오류가 없는지 확인하는 것이 중요합니다.

    CSS 미니 화 중에 문제를 디버그하는 방법은 무엇입니까? Laravel에서는 Laravel Mix의 소스 맵 기능을 사용하여 디버깅 할 수 있습니다. 소스 맵은 조정 된 CSS 파일을 원래 소스 파일에 다시 매핑하는 파일로, 모든 문제를 쉽게 추적하고 수정할 수 있습니다.

    Laravel에서 CSS 미니 화 과정을 자동화 할 수 있습니까? . 예, Laravel Mix의 버전 관리 기능을 사용하여 Laravel에서 CSS 미니 화 과정을 자동화 할 수 있습니다. 이 기능은 프로덕션 빌드 명령을 실행할 때마다 CSS 파일을 자동으로 최소화합니다. 이렇게하면 CSS 파일이 매번 수동으로 미행하지 않고도 CSS 파일이 항상 최적화되도록 보장합니다.

    CSS 미니는 Laravel 애플리케이션의 성능에 어떤 영향을 미칩니 까? 라벨 신청서. CSS 파일의 크기를 줄임으로써 클라이언트로 전송 해야하는 데이터의 양을 줄일 수 있습니다. 이로 인해로드 시간이 더 빠르면서 더 나은 사용자 경험을 제공 할 수 있습니다.

    Laravel Mix를 사용하여 다른 유형의 파일을 미치는가? JavaScript 파일을 조정합니다. 이것은 Laravel 애플리케이션을 추가로 최적화하여 클라이언트로 전송 해야하는 데이터의 양을 줄일 수 있습니다.

    CSS 파일을 미수하고 연결하는 것의 차이점은 무엇입니까?

    CSS 파일을 제거하는 것이 포함됩니다. CSS 파일을 연결하려면 크기를 줄이기 위해 불필요한 문자는 여러 CSS 파일을 단일 파일로 결합하는 것이 포함됩니다. 두 프로세스 모두 Laravel 애플리케이션을 최적화하는 데 도움이 될 수 있지만 다른 목적을 제공합니다. 조정은 각 개별 CSS 파일의 크기를 줄이고, 여러 파일을 하나로 결합하여 HTTP 요청의 수를 줄입니다.

    미니저 내 CSS 파일을 올바르게 사용하는지 확인하려면 어떻게해야합니까?

    . 최소화 된 CSS 파일이 올바르게 제공되도록 Laravel Mix의 버전화 기능을 사용할 수 있습니다. 이 기능은 조정 된 CSS 파일의 파일 이름에 고유 한 해시를 추가하여 클라이언트가 항상 최신 버전의 CSS 파일을 수신 할 수 있도록합니다.

위 내용은 Laravel CSS-Minify 명령을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿