2016-08-19 15 views
0

に除外し、私はこれを持っています行は正常に動作しますが、./test.jsは機能しません。エラーError: Cannot find module '/test.js'が表示されます。必要とBrowserifyのAPIとがぶ飲みしてローカルファイル

これを動作させるにはどうすればよいですか?

何らかの理由で、bundle.jslib.jsのキーが異なります。 lib.jsでは、test.jsのキーはフルパス(/Users/gary/Projects/browserify-test/test.js)ですが、bundle.jsではキー./test.jsのモジュールを探しています。手動で後者を前者と同じに変更すると、それは機能します。

私は最終的に、Browserifyは同じバンドルから除外されているローカルファイルに対してrequireをサポートしていないと思います。

+0

私はあなたが輸出されていることを前提としていtest.jsのコードですか? – Federico

+0

はい、エクスポートしました。それは適切なモジュールです。 2つのバンドルが1つのファイルに含まれている場合に動作します。 – Gary

+0

pathオプションを試してください:return browserify({paths:['./node_modules','./src/js/']})、require( 'test.js');うまくいくはずだ – Federico

答えて

0

browserifyは、ファイルを取得するための絶対パスが必要であり、それはバンドルキーとして残ります。それを修正する方法exposeオプションを使用することです...あなたのビルドで

..

var dependencies = [ 
    'lodash', 
    {file: './test.js', expose: 'test'}, 
]; 

とapp.jsで...

var _ = require('lodash'); 
var test = require('test'); 
関連する問題