2013-03-20 60 views
11

正如標題所示,我的內聯需要調用正在非優化的requirejs運行中工作,但在使用grunt和almondjs構建時無法工作。Inline require()在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文檔,它非常適合非動態加載和打包到一個文件中的所有內容。

您應該能夠在編譯選項中將「findNestedDependencies」設置爲true,以確保您的內聯require調用包含在構建中。

+0

+1有同樣的問題,這解決了它。 – daemon 2013-06-08 15:12:36

+0

謝謝,你救了我的一天! – njtman 2014-01-14 20:35:04

相關問題