2016-07-13 7 views
0

私はモジュールがロードされていないためのヘルプページがあることを知っていますが、これはrequirejsがrequirejsを見つけることができないという事実のために、別のケースのようです。RequireJSモジュール名 "requirejs"がまだコンテキストのためにロードされていません。

npmを使用してすべての依存関係をインストールしました。私のメインスクリプトは、プロジェクトのルートにあり、htmlページによって呼び出されます。ここで

Webページからの抜粋です:

<script type="text/javascript" data-main="./airportLeafletScript.js" src="node_modules/requirejs/require.js"></script>

そしてairportLeafletScript.jsのヘッダは次のようになります。

var requirejs = require('requirejs'); 

requirejs.config({ 
//Pass the top-level main.js/index.js require 
//function to requirejs so that node modules 
//are loaded relative to the top-level JS file. 
nodeRequire: require 
}); 

requirejs(['turf', 'jquery', 'leaflet', 'leaflet-rotatedmarker', 
    'leaflet-slider', 'shpjs', 'jquery-ui', 'json3', 'esri-leaflet'], 
    function (turf, $, L, Marker, SliderControl, shp) { 
//foo and bar are loaded according to requirejs 
//config, but if not found, then node's require 
//is used to load the module. 
}); 

実際のエラーメッセージは次のとおりです。

11:03:19.078 Error: Module name "requirejs" has not been loaded yet for context: _. Use require([]) 
http://requirejs.org/docs/errors.html#notloaded 
makeError() require.js:168 
localRequire() require.js:1433 
requirejs() require.js:1794 
<anonymous> airportLeafletScript.js:46 
1 require.js:168:17 

このプロジェクトではどのようにrequirejsを働かせることができますかct?正しく設定されていないようです

答えて

1

表示されているコードvar requirejs = require('requirejs');は、ブラウザではなくNode.jsで実行されます。 requirejs.configに渡される設定には、nodeRequireが含まれています。これはNode.jsでのみ意味があります。

あなたが表示さscriptタグと、ブラウザでそのコードを読み込むと、RequireJSはすでにロードで、require呼び出しは関係なく、あなたがそれをカットどのように悪いではありませんこれは、再びそれをロードしようとします。 RequireJS固有のエラーが発生しますが、これはNode.js用に記述されたコードをRequireJSでロードしようとする場合の副作用です。

Node.jsに同じコードをロードすると、require呼び出しはNode.jsによって処理されます。 RequireJSをロードし、それを構成して使用することができます。

関連する問題