2014-12-01 5 views
3

내 프로젝트에서 Browserify (프로그래밍 방식으로 꿀꺽 마심)를 사용하고 있습니다. 내 주요 자바 스크립트 파일에서 내가 모듈 A를 필요로하고 있고 B. A는 또한 내가 A.에게Browserify - 절대 경로 출력 방지

출력을 모듈에 절대 경로를 찾을 수 있습니다 Browserify의 출력에서 ​​B를 사용하는 것은 다음과 같습니다

!function t(n,o,r){function e(s,a){if(!o[s]){if(!n[s]){var u="function"==typeof require&&require;if(!a&&u)return u(s,!0);if(i)return i(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var f=o[s]={exports:{}};n[s][0].call(f.exports,function(t){var o=n[s][1][t];return e(o?o:t)},f,f.exports,t,n,o,r)}return o[s].exports}for(var i="function"==typeof require&&require,s=0;s<r.length;s++)e(r[s]);return e}({1:[…] 
    … 
10:[function(t,n){n.exports=t(9)},{"/Applications/MAMP/htdocs/Projects/xyz/node_modules/moduleA/node_modules/moduleB/index.js":9}]},{},[1]); 
여기

는 gulpfile.js의 관련 부분입니다 :

browserify(['./app/js/main.js'], {}) 
    .bundle() 
    //Pass desired output filename to vinyl-source-stream 
    .pipe(source('main.min.js')) 
    //convert from streaming to buffered vinyl file object 
    .pipe(buffer()) 
    // Start piping stream to tasks! 
    .pipe(gulp.dest('app/js/')); 

어떻게이 문제를 방지 할 수 있습니까? 이미 여러 가지 옵션을 시도했지만 도움이되지 않았습니다. 사이드 노트 : 두 모듈은 npm을 통해 설치되지만 GitHub는 npm에 게시되지 않기 때문에 설치됩니다.

답변

11

fullPaths부터 false까지 설정해야합니다. 당신이 추하게을 통해 배관하고 또는 다른 비 스트리밍 호환 변환하지 않는 한, 내용을 버퍼링 할 필요가 없습니다 지적 가치 또한

var collapse = require('bundle-collapser/plugin'); 

browserify(['./app/js/main.js'], { fullPaths: false }) 
    .plugin(collapse) 
    .bundle() 
    //Pass desired output filename to vinyl-source-stream 
    .pipe(source('main.min.js')) 
    //convert from streaming to buffered vinyl file object 
    .pipe(buffer()) 
    // Start piping stream to tasks! 
    .pipe(gulp.dest('app/js/')); 

: 추가 압축의 경우, bundle-collapser를 보라.

+0

번들 collapser가 트릭을 한 것으로 보입니다. fullPaths : false만으로는 도움이되지 않았습니다. – gang

+0

그것은 나를 위해 일했습니다 – user3896501

+1

이것은 내 'vendor.js' 빌드를 1.4MB에서 1.1MB로 줄였습니다 :) –