2016-12-02 6 views
1

browserifyで関数呼び出しをどのように前処理できますか?大規模なJSファイルでブラウザで前処理していますか?

、ある時点で、私は変数にJSONオブジェクトを渡す必要がありますが、このJSONオブジェクトのみを関数呼び出しによって作成されることがあります。私はこの関数呼び出しを記述する場合

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

このように、このコード行はそのままbundle.jsファイルに現れます。どのように私はこれが(ガルプ付き)browserifyで実現することができます

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

:そうbundle.jsに、私はのようなものを見ることを期待

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

:私は単にような何かをしたいですか?

+0

'var myvar = [myobj:{x:1、y:2}];'あなたは無効なjavascriptを作成することを意味します。 :) – 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

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(); 
    }); 
}; 
関連する問題