2013-03-20 5 views
11

タイトルは私のインラインコールが最適化されていないrequirejsで動作していますが、gruntとalmondjでビルドされている場合は動作しません。requirejsで作業していますが、最適化されたアーモンドビルドでは動作しません。

Uncaught Error: undefined missing views/some/view 

任意のファイルの先頭には、次のようになります。

define(
['jquery', 'app'], 
function($, App) { 

以降、私は別の構文を試してみました

require(['views/some/view'], function(SomeView){ 
    console.log(SomeView); 
}); 

別のファイルを必要とすることができるようにしたいビジネスロジックに基づいて上同様に:

var SomeView= require('views/some/view'); 

そして、これはすべてビルドされていないrequirejsバージョンを使って動作します。しかし、再び、それは私がうなり声とアーモンドでそれを構築する際に失敗し

requirejs: { 
     compile: { 
      options: { 
       name: "../components/almond/almond", 
       baseUrl: "src", 
       mainConfigFile: "./require.config.js", 
       include: ['main'], 
       insertRequire: ['main'], // Add a require step in at the end for the main module. 
       wrap: true, // Wrap everything up in a closure 
       generateSourceMaps: true, // Experimental 
       preserveLicenseComments: false, // Needs turned off for generateSourceMaps 
       optimize: "uglify2", // Supports generateSourceMaps 
       out: "assets/javascripts/build.js" 
      } 
     } 
    }, 

私が定義コールでファイルの先頭にそれを置く場合、私はそれがアーモンドに細かい作業を取得することができますが、それは好ましくないAMDはそれをリーンに保つために?

答えて

10

Almondのドキュメントによれば、非動的ロードとすべてのものが1つのファイルにパッケージ化されています。

コンパイルオプションで "findNestedDependencies"をtrueに設定して、インラインコールがビルドの一部として含まれるようにする必要があります。

+0

+1同じ問題があり、これで解決しました。 – daemon

+0

ありがとう、あなたは私の一日を救った! – njtman

関連する問題