2016-12-02 3 views
1

browserify를 사용하여 함수 호출을 사전 처리 할 수 ​​있습니까? 큰 JS 파일에서 browserify로 전처리 중입니까?

는 한 지점에서, 나는 변수에 JSON 객체를 전달해야하지만이 JSON 오브젝트은 함수 호출에 의해 생성 될 수있다 :이 함수 호출을 작성하는 경우

var myvar = Ractive.parse('mytemplate.html'); 

이렇게 코드의이 라인은 그대로 bundle.js 파일에 나타납니다. 나는 단순히 뭔가를 원하는 :

var myvar = THIS_WILL_RUN_WHILE_BROWSERIFYING(Ractive.parse('mytemplate.html')); 

그래서 뭔가처럼 볼 것으로 예상 bundle.js에서 :

var myvar = [{myobj:4},{x:1,y:2}]; 

가 어떻게이 (꿀꺽 포함) browserify으로 그렇게 할 수 있습니까?

+0

'var myvar = [myobj : {x : 1, y : 2}]; '잘못된 자바 스크립트를 만들고 싶습니다. :) – Keith

+1

나는 browserfy를 사용하지 않지만 doc -> https://github.com/substack/browserify-handbook#transforms를보고있다. 당신은 당신 자신의 변환을 만들고 싶을 것이다. $ CWD'와'process.cwd()'는 당신이 시도 할 수있는 것처럼 보입니다. – Keith

+0

Ractive를 사용하고 나서 오랜 시간이 걸렸지 만 https://github.com/marcello3d/node-ractify를 보았습니까? – cartant

답변

3

Browserify는 사용자 지정 변환을 만들 수있게 해줍니다. 다음 링크에서 변환을 만드는 좋은 예가 있습니다.

https://github.com/substack/browserify-handbook#transforms

A가 process.cwd()으로 $CWD의 대체 수행의 예 필요한 변환을 만들 수있는 OP를위한 좋은 출발점이 될 것처럼 보였다.

향후 링크가 끊어 질 가능성이있는 경우 다음 예가 있습니다.

var through = require('through2'); 

module.exports = function (file) { 
    return through(function (buf, enc, next) { 
     this.push(buf.toString('utf8').replace(/\$CWD/g, process.cwd())); 
     next(); 
    }); 
};