gulp requirejs 컴 파일 프로 세 스 를 작성 하 는 노트
공식 적 인
gulp-requirejs
플러그 인 에 문제 가 있 습 니 다.end 사건 이 정상적으로 촉발 되 지 않 았 습 니 다.zensh 와 함께 보 았 습 니 다.그 는 문 제 를 찾 아 해결 방안 을 주 었 습 니 다.저 는 구 덩이 를 메 웠 습 니 다.나중에 웨 이 보 에 사용 하 라 는 알림 이 있 었 습 니 다gulp-requirejs-optimize
.그런데 다운 로드 량 이 너무 안 됩 니 다.http://weibo.com/1651843872/BBzG2sHQm 여기 서 저 는 이 스 크 립 트 를 기록 하려 고 합 니 다.그 중에서 흐름 에 어떻게 대처 하 는 지 급 하 게 자 료 를 찾 아 천천히 찾 아 냈 습 니 다.Gulp 를 이해 하 는 데 도움 이 될 것 입 니 다.스 크 립 트 의 내용 은 다음 과 같 습 니 다.
coffee
gulp.task 'mainjs', -> rjs = require 'requirejs' uglify = require 'gulp-uglify' rename = require 'gulp-rename' vinyl = require 'vinyl' through2 = require 'through2' stream = through2.obj() rjs.optimize wrap: true preserveLicenseComments: false optimize: 'none' name: 'main' baseUrl: 'build/script/' mainConfigFile: 'build/script/config.js' exclude: ['deps'] out: (chunk) -> buffer = new vinyl path: 'main.js' contents: new Buffer chunk stream.write buffer (output) -> stream.end() stream .pipe uglify() .pipe rename(suffix: '.min') .pipe gulp.dest('./build/')
제 가 직면 한 일 은 requirejs 모듈 을 컴 파일 할 수 있 습 니 다.컴 파일 을 호출 한 다음 에 입력 을 gulp file stream 형식 으로 계속 전달 한 다음 에 uglify 등 으로 코드 를 후속 적 으로 조작 하여 gulp-requirejs 코드 를 읽 어 보 았 습 니 다.나 는 내 가 두 가지 문 제 를 해결 해 야 한 다 는 것 을 안다.https://github.com/RobinThrift/gulp-requirejs/blob/master/index.js
event-stream
모듈 이 너무 복잡 해서 정 해 지지 않 았 습 니 다gutil.File
이 구조 기 가 새로운 버 전에 서 없어 졌 다 는 것 이다스 트림 생 성
이전에 저 는 Gulp 의 Stream 이 봉 인 된 파일 흐름
path
과contents
문서 와 시도 에 따라 Stream 에서 String 이나 Buffer 만 사용 할 수 있다 는 것 을 알 게 되 었 습 니 다.저 는 예 에서 through 2 봉 인 된 stream 이 가능 하 다 는 것 만 기억 하고 언급 한 것 을 보 았 습 니 다.Stream 은 대상 을 전송 할 수 있 는 개objectMode
가 있 습 니 다:http://nodejs.org/api/stream.html#stream_object_mode 그런데 작 동 하 는 API 가 복잡 해 보 여서 잘 모 르 겠 어 요.나중에 직접 사용
through2
을 시 도 했 는데 정상적으로 작 동 하 는 것 을 발견 했다.coffee
stream = though2.obj() stream.write buffer stream.end()
문서 가 보 낸 용 도 는
.obj(fn)
중 에write
함수 가 있 을 거 예요.구조 파일 데이터
또 다른 문제,
requirejs
모듈,out
함수 가 전달 하 는 매개 변 수 는 실제 대응emit
하 는 데이터 상단 의 코드 로 두 개의 함수 가 있 고 한 처리emit
,다른 처리end
는emit
이지 만requirejs
모든 파일 을 읽 어야 하기 때문에 사실상 최종 호출 에 불과 하 다.한참 동안 찾 았 지만
gulp.File
찾 지 못 했 습 니 다.gulp 소스 룸 에서 파일 대상 의 코드 를 찾 아 보 았 습 니 다.마지막 으로vinyl
문서 에서 비슷 한 내용 을 찾 아 보 았 습 니 다.https://github.com/wearefractal/vinyl 문서 의 인자 가 더 많 습 니 다.저 는 이러한 쓰기 방법 을 통 해 파일 데 이 터 를 성공 적 으로 만 들 었 습 니 다.coffee
vinyl = require 'vinyl' new vinyl path: 'main.js' contents: new Buffer 'data'
Stream 은 저 에 게 아직 낯 설 습 니 다.앞으로 천천히 강화 할 방법 을 생각해 보 세 요.위의 두 가지 에 대해 더 잘 알 고 있다 면 댓 글로 알려 주세요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Express + AWS S3 이미지 업로드하기웹 사이트 및 모바일 애플리케이션 등에서 원하는 양의 데이터를 저장하고 보호할 수 있다. 데이터에 대한 액세스를 최적화, 구조화 및 구성할 수 있는 관리 기능을 제공한다. AWS S3 에 저장된 객체에 대한 컨테이너...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.