2017-11-02 7 views
0

を割り当てますid:Browserifyは、モジュールへの相対パスの代わりに、このファイルツリーを考えると、絶対パス

"/Users/rikschennink/.../src/ui/foo.js"

モジュールパスを相対パスにする方法はありますか? --full-pathsコマンドを省略すると、モジュール識別子としてインデックスが残ってしまい、それが機能しません。

私はすべてのモジュールをバンドルしたいが、このようなパスでrequireすることでそれらを参照できる。

var module = require('/ui/foo');

私はモジュールを別名設定できる承知しているが、それは本当に可能な解決策ではありません手動で一つ一つのモジュールをエイリアシングが必要となります。


出力ストリームの絶対パスを置き換えるJavaScript関数を使用しました。あなたはここでそれを見つけることができます: はhttps://github.com/rikschennink/conditioner-boilerplate-browserify/blob/master/browserify.js

答えて

1

私は単に私のためのものを修正するためにsedを使用する

browserify -r ./src/ui/bar -r ./src/main ./src/**/*.js --full-paths | sed "s|$PWD/src||g" > ./dist/bundle.js 

が続いて生成された最後の行は、あなたが望んでいたのと同じように

},{}]},{},["/main.js","/ui/bar.js","/ui/ui.js"]); 

+0

ウィルですそれはWindowsとOSXの両方で動作しますか?で、私はpackage.jsonのエントリとしてそれを実行できますか? – Rik

+0

@Rik、Windows用Git bashやその他のUNIXエミュレート端末で動作させると動作します –

+0

これはまさに私が探していたものではありませんでしたが、実際にはうまくいきました。方向。私はbrowserify.jsの設定に追加できる小さなスクリプトを書いています(他の人には役に立ちそうなので、1分で質問に追加されます)。ありがとう! – Rik

関連する問題