> 웹 프론트엔드 > JS 튜토리얼 > 명령 줄 매개 변수를 GULP 작업에 전달하는 방법

명령 줄 매개 변수를 GULP 작업에 전달하는 방법

Christopher Nolan
풀어 주다: 2025-02-17 10:32:10
원래의
660명이 탐색했습니다.

How to Pass Command Line Parameters to Gulp Tasks

코어 포인트

gulp.js의 단순성은 가장 매력적인 기능 중 하나이며, 개발자는

에서 작업 함수를 작성하고 명령 줄에서 실행할 수 있습니다. 그러나 전달 된 명령 줄 매개 변수를 사용하기위한 작업에 지원하지는 않습니다.
    Gulp 작업에는 일반적으로 매개 변수가 필요하지 않지만 매개 변수는 경우에 따라 유용 할 수 있습니다. 예를 들어, FTP 자격 증명을 매개 변수로 전달하면 보안을 향상시키고 하드 코딩 된 민감한 정보를 방지 할 수 있습니다.
  • 속성은 프로세스, 스크립트 및 모든 명령 줄 매개 변수를 포함하는 배열을 반환합니다. 이 배열은 매개 변수 값을 포함하는 객체를 생성하기 위해 gulpfile.js로 구문 분석 할 수 있습니다.
  • Gulp 작업이 항상 수신 매개 변수를 필요로하는 것은 아니지만 경우에 따라 매우 유용합니다. 매개 변수 구문 분석 코드는 모든 node.js 명령 줄 프로세스에서 사용할 수 있으며 Commander 모듈은 비 GULP 프로젝트에보다 강력한 기능을 제공합니다.
  • 나는 gulp.js를 매우 좋아하고 최근의 조사에 따르면 프론트 엔드 개발자의 거의 44%가 Gulp 작업을 사용하고 있습니다.

  • Gulp의 단순성은 가장 매력적인 기능 중 하나입니다. process.argv : gulpfile.js에서 작업 함수를 쓸 수 있습니다
  • 그런 다음
  • 를 사용하여 명령 줄에서 작업을 실행하십시오. 작업은 원하는만큼 단순하거나 복잡 할 수 있으며 추가 하위 작업을 포함 할 수 있습니다.
그러나이 작업에서 사용할 수있는 명령 줄 매개 변수를 전달하는 것은 불가능합니다.

(여기서

) 이 매개 변수는 작업이 아니라 GULP 응용 프로그램 자체로 전달됩니다. Gulp는 이러한 값을 이해하지 못하므로 gulpfile.js에서 사용할 수 없으며 작업 기능에서 확인하거나 사용할 수 없습니다.

Gulp 작업에는 매개 변수가 필요합니까?
gulp.task('doSomething', () => {
  // 执行某些操作
});
로그인 후 복사
로그인 후 복사
로그인 후 복사
일반적으로 필요하지 않습니다. 그렇지 않으면 매개 변수를 작업에 전달하는 기능은 몇 년 전에 추가됩니다! Gulp 작업은 JavaScript로 작성되므로 코드에서 기본값을 설정할 수 있습니다.

<🎜 🎜>와 같은 환경 변수를 분석 할 수도 있습니다. 예를 들어, 라이브 서버에서 값이 생산으로 설정되었는지 또는 유사한 지 확인할 수 있습니다. 그런 다음이 설정을 사용하여 작업이 실행되는 동안 JavaScript 소스 파일을 축소할지 여부를 결정할 수 있습니다. gulp doSomething 는 이제 <🎜 🎜> 작업을 실행하기 전에 Linux/Mac 또는 Windows에서

를 설정할 수 있습니다. 그런 다음 javaScript 파일을 압축하기 전에

문을 삭제합니다.
gulp doSomething --option1 "my string" --option2 123 --option3
로그인 후 복사
로그인 후 복사
로그인 후 복사
마지막으로, 작업이 약간 다른 작업을 수행하려면 새로운 작업을 만들 수 있습니다. 예를 들어 필요에 따라 순서대로 실행되도록 작업을 함께 연결할 수 있습니다.
gulp.task('doSomething', () => {
  // 执行某些操作
});
로그인 후 복사
로그인 후 복사
로그인 후 복사

run gulp doSomething1 첫 번째 작업이 수행됩니다. 실행 gulp doSomething2는 작업 이름의 선택적 배열에서 종속성으로 정의되기 때문에 두 작업을 순서대로 수행합니다. doSomething1 매개 변수를 고려해야합니까?

더 나은 대안이있을 때 매개 변수를 사용하지 마십시오. <🎜 🎜> 매개 변수는 다음 GULP 버전에서 유효한 명령 줄 옵션이 될 수 있습니다.

다시 말해, 항상 몇 가지 특별한 상황이 있습니다 ...

<> 1 는 일반적으로 ID 및 암호와 같은 하드 코드 자격 증명을 <🎜 🎜>로 피해야합니다. Vinyl-FTP 플러그인을 사용하여 파일을 서버에 배포하는 다음 작업을 고려하십시오.

(정통, FTP는 배포하기에 좋은 방법이 아니지만 많은 개발자가 여전히 사용하고 있으며 일부 호스트에서 유일한 옵션 일 수 있습니다.) --option1. 이 방법에는 몇 가지 문제가 있습니다

ftp 호스트, 사용자 ID, 비밀번호 및 경로는 파일에 하드 코딩됩니다. 코드가 공개 GitHub 저장소에 저장되어 있는데 누구나보고, 복제하고 실행할 수 있다면 보안 문제가 발생할 수 있습니다.

모든 개발자는 언제든지 모든 장치에서 실행할 수 있습니다. 이것은 배포 시간을 제어하려는 대규모 팀에게는 이상적이지 않습니다.

자격 증명이 변경되면 배포 작업이 여전히 유효한지 확인하려면 수동으로 업데이트해야합니다.

< > 2. 다른 소스, 빌드 또는 작업 위치

Gulp는 일반적인 웹 사이트 작업 이외의 목적으로 사용할 수 있습니다. 예를 들어, 폴더를 지우고 데이터베이스를 작성하고 파일을 전송하는 등 몇 가지 일반적인 작업이있을 수 있습니다. 데이터베이스 또는 폴더 이름과 같은 하드 코딩 된 콘텐츠는 이러한 작업의 실용성을 줄입니다. gulpfile.js < > 3 수십 개의 플러그인과 관련된 복잡한 작업을 상상해보십시오. 여러 하위 작업으로 분할하는 것이 실용적이지 않으면 작업을 실행하기 전에 구성 옵션을 추가하기 위해

를 직접 편집하기가 어려워 질 수 있습니다.
gulp doSomething --option1 "my string" --option2 123 --option3
로그인 후 복사
로그인 후 복사
로그인 후 복사
당신은 더 특별한 상황을 생각할 수 있습니다 (의견을 환영합니다!)

gulp.js 태스크에 매개 변수를 전달하는 방법 <🎜 🎜> 속성은 프로세스, 스크립트 및 모든 명령 줄 매개 변수를 포함하는 배열을 반환합니다. 예를 들어,

는 다음 배열을 반환합니다 (값은 운영 체제 및 설정에 따라 다를 수 있음) : <🎜 🎜>

이 배열은

에서 구문 분석 할 수 있습니다. 다음 코드는 매개 변수 값을 가진
    라는 이름의 객체를 만듭니다.
  1. 이 함수는 <🎜 🎜> 배열을 통해 고리합니다. 하나 이상의 대시로 시작하는 값이 발생하면 <🎜 🎜> 객체에 새 지명 된 값이 생성되며
  2. 로 설정됩니다. 대시없이 값이 발생하면 이전 지명 값 (사용 가능한 경우)을 문자열로 설정합니다.
  3. <<> 우리가

    를 실행할 때 gulp task1 --a 123 --b "my string" --c 객체는 다음과 같이 설정됩니다. arg 따라서 필요에 따라 이러한 값을 확인하고 사용할 수 있습니다.

    gulp.task('doSomething', () => {
      // 执行某些操作
    });
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사

    가 <🎜 🎜>의 상단에 설정되었다고 가정하고, 우리는 다음을 통과 할 수 있도록 FTP 배포 작업을 다시 쓸 수 있습니다.

    <<<> 사용자 ID as <🎜 as as <🎜 ~

    파라미터 <🎜 🎜> <🎜 🎜> 암호 <🎜 🎜 또는 <🎜 🎜> 매개 변수 <🎜 🎜> arg gulpfile.js 배포는 적절한 FTP 자격 증명으로 작업을 실행할 때만 발생합니다.

      요약 <🎜 🎜> 우리가 보았 듯이 소량의 사용자 정의 코드를 사용하면 매개 변수를 GULP 작업으로 전달할 수 있습니다. 귀하의 작업에는 일반적으로 수신 매개 변수가 필요하지 않지만 경우에 따라 매우 유용하다는 것을 알 수 있습니다. 이것은 도구 상자에서 마스터해야 할 좋은 기술입니다.
    • 파라미터 구문 분석 코드는 모든 node.js 명령 줄 프로세스에서 사용할 수 있습니다. 그러나 GULP가 아닌 프로젝트에서 필요한 경우 사령관 모듈은보다 강력한 기능을 제공합니다. --user 나는 당신이 이것이 유용하다는 것을 알기를 바랍니다. 물론, 매개 변수를 Gulp 작업에 전달할 수 있다고해서 --u <🎜 🎜>를 그렇게해야한다는 의미는 아닙니다! 이 접근법에 대해 더 좋은 사용 사례를 생각해 내면 의견에 알려주십시오.
    • 이 기사는 Tim Severien이 검토했습니다. itepoint 컨텐츠를 최대한 활용 한 모든 Sitepoint Peer Reviewers에게 감사합니다!
    • <<> Gulp 작업 (FAQ)에 매개 변수를 전달하는 것에 대해 자주 묻는 질문 명령 줄에서 매개 변수를 GULP 작업에 전달하는 방법은 무엇입니까? --password 배열을 사용하여 매개 변수를 명령 줄에서 Gulp 작업에 전달할 수 있습니다. 이 배열에는 node.js 프로세스를 시작할 때 전달 된 명령 줄 매개 변수가 포함되어 있습니다. 이 배열의 처음 두 요소는 node.js 실행 파일의 경로와 Gulp 파일로가는 경로입니다. 다른 매개 변수는 세 번째 위치에서 시작 하여이 배열에 추가됩니다. --p 배열을 인덱싱하여 Gulp 작업에서 이러한 매개 변수에 액세스 할 수 있습니다.
    • 패키지를 사용하여 Gulp의 명령 줄 매개 변수를 처리 할 수 ​​있습니까?
    예, Yargs 또는 Minimist와 같은 패키지를 사용하여 Gulp에서 명령 줄 매개 변수를 처리 할 수 ​​있습니다. 이 패키지는 명령 줄 매개 변수를 사용하기 쉬운 형식으로 구문 분석하므로 GULP 작업에 쉽게 사용할 수 있습니다. 예를 들어, Yargs를 사용하는 경우
    gulp doSomething --option1 "my string" --option2 123 --option3
    로그인 후 복사
    로그인 후 복사
    로그인 후 복사
    객체의 특성에 명령 줄 매개 변수로 액세스 할 수 있습니다.

    Gulp 작업에서 플래그를 사용하는 방법은 무엇입니까?

    플래그 이름 앞에서 플래그를 명령 줄에서 gulp 작업으로 전달할 수 있습니다. 예를 들어, 다음과 같이 "생산"플래그를 Gulp 작업에 전달할 수 있습니다. Gulp 작업 에서이 플래그가 <🎜 🎜> 또는 yargs 또는 미니스트와 같은 패키지를 사용하여 설정되어 있는지 확인할 수 있습니다.
    // 这是开发版本吗?
    const devBuild = ((process.env.NODE_ENV || 'development').trim().toLowerCase() === 'development');
    
    // Gulp 插件
    const stripdebug = require('gulp-strip-debug');  // 删除调试代码
    const uglify = require('gulp-uglify');           // 压缩
    
    // 构建 JavaScript
    gulp.task('js', () => {
      let jsbuild = gulp.src('src/js/*')
        .pipe(some-plugin1())
        .pipe(some-plugin2());
    
      // 生产服务器任务
      if (!devBuild) {
        jsbuild = jsbuild
          .pipe(stripdebug())
          .pipe(uglify());
      }
    
      return jsbuild.pipe(gulp.dest('build/js/'));
    });
    로그인 후 복사
    여러 매개 변수를 GULP 작업에 전달할 수 있습니까?

    예, 여러 매개 변수를 명령 줄에서 Gulp 작업에 전달할 수 있습니다. 이 매개 변수는 전달 된 순서대로

    어레이에 추가됩니다.

    배열을 인덱싱하여 Gulp 작업에서 이러한 매개 변수에 액세스 할 수 있습니다. process.argv Gulp 작업에서 명령 줄 매개 변수를 사용하는 방법은 무엇입니까? process.argv 는 Yargs 또는 Minimist와 같은 배열 또는 패키지에 액세스하여 Gulp 작업에서 명령 줄 매개 변수를 사용할 수 있습니다. 이 매개 변수를 사용하여 GULP 작업의 동작을 제어 할 수 있습니다. 예를 들어, "생산"플래그를 사용하여 빌드 작업에서 코드를 압축 할 수 있습니다.

    Gulp 작업에서 환경 변수를 사용할 수 있습니까?

    예, Gulp 작업에서 환경 변수를 사용할 수 있습니다. 이러한 변수는

    객체를 통해 액세스 할 수 있습니다. 이는 API 키와 같은 민감한 정보를 명령 줄 매개 변수에 노출하지 않고 GULP 작업에 전달하려는 경우 유용합니다.

    GULP 작업의 오류를 처리하는 방법은 무엇입니까? process.argv

    는 Gulp 작업의 오류를 처리하는 데 사용될 수 있습니다. 이 메소드는 오류가 발생할 때 호출되는 콜백 함수를 취합니다. 이 콜백 함수에서는 오류를 기록하고 GULP가 충돌하지 않도록 작업을 종료 할 수 있습니다.

    순서대로 여러 Gulp 작업을 실행할 수 있습니까?

    예, process.env 메소드를 사용하여 여러 Gulp 작업을 실행할 수 있습니다. 이 메소드는 다양한 작업 이름을 사용하여 정의 된 순서로 실행합니다.

    여러 Gulp 작업을 병렬로 실행할 수 있습니까?

    예,

    메소드를 사용하여 여러 Gulp 작업을 병렬로 실행할 수 있습니다. 이 메소드는 다양한 작업 이름을 사용하고 동시에 모든 작업을 실행합니다.

    기본 gulp 작업을 정의하는 방법은 무엇입니까? .on('error') 기본 gulp 작업은 "기본값"을 작업 이름으로 사용하는 메소드를 사용하여 정의 할 수 있습니다. 이 작업은 작업 이름없이 GULP 명령을 실행할 때 실행됩니다. 이 작업을 사용하여 기본적으로 일련의 다른 작업을 실행할 수 있습니다.

    위 내용은 명령 줄 매개 변수를 GULP 작업에 전달하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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