2017-03-08 7 views
0

でBrowserifyを使用しているとき、私は私のgulpfileでのNaviGoは一気

-index.html 
-build 
    -js 
     -modules.js 
     -routing.js 
-js 
    -modules.js 

マイバンドルタスク(のみ関連のものを含む)Browserifyとガルプ

マイファイル構造

で動作するように Navigo (npm package)を得ることができない定義されていません。 the following modules.js file

を出力

gulp.task('bundlemods', function() { 
    var bundleMods = browserify('./js/modules.js') 
    .bundle() 
    .on('error', console.error) 
    .pipe(source('modules.js')) 
    .pipe(gulp.dest('./build/js')); 
}); 

を提出私の実際のrouting.jsでのNaviGoを使用できるようにbrowserify使用していますJSその後、私はちょうど、次のようのNaviGoを使用しようとしている私のrouting.jsで

function initRouting() { 
    var rootUrl = null; 
    var useHash = false; 
    var router = new Navigo(rootUrl, useHash); 

    router.on(function() { 
     runHome(); 
    }) 
    .resolve(); 
} 

はしかし、これはUncaught ReferenceError: Navigo is not defined

はまた、これはエラーを生成する方法を、関連する私のindex.htmlファイルのルックス(部品をもう一度)

<!doctype html> 
<html> 
<head> 
/* stuff */ 
</head> 
<body> 
    <main> 
     /* stuff */ 
    </main> 
    <script src="build/js/modules.js"></script> 
    <script src="build/js/routing.js"></script> 
    /* other scripts */ 
</body> 
</html> 

これはまだ定義されていない理由は何ですか? Browserifyを使用してモジュールファイルを生成したら、Navigoを実際にどのように使用しますか?それはグローバルスコープや何か他のものとは関係がありますか?

+0

あなたのレポや何かをポストするのは、あなたが正しい方法でパッケージを要求しているようには思われません。 –

+0

要求が正しいと思われますが、グローバルスコープに含めないことでちょうどそれを台無しにしました。 Eeeeeeheheh ... – Clanket

答えて

1

もちろん、browserifyは変数がグローバルスコープで漏れないようにします。あなたはそれがgloabally利用可能にしたい場合は、明示的にグローバルスコープに添付する必要があります

Navigo = require('navigo'); 

varキーを使用していないグローバルスコープとするとき、あなたがそれをbrowserifyにのNaviGo VARを添付します、あなたの世界はウィンドウになります Navigoはどこからでも入手できます。あなたはグローバルスコープを汚染したくない場合は

次に、あなただけのrouting.jsでそれを必要とする可能性がある:

var Navigo = require('navigo'); 
function initRouting() { 
    var rootUrl = null; 
    var useHash = false; 
    var router = new Navigo(rootUrl, useHash); 

    router.on(function() { 
     runHome(); 
    }) 
    .resolve(); 
} 

、その後、代わりにこのファイルをbrowserify。

+1

あなた、私の親愛なる、私の救世主です。うわー、私はすべてのことを働かせるように道に沿って非常に多くの問題を抱えていました。どうもありがとうございます!私の顔に答えを突きつけるだけでなく、説明する驚くべき答え:D – Clanket

+0

@Clanket、喜んで助けました。 – dNitro