Подтвердить что ты не робот

Inline require() работает в requirejs, но не с оптимизированной сборкой миндаля

Как говорится в заголовке, мой запрос inline требует, чтобы вызовы работали в не оптимизированном запросе requirejs, но не работали при построении с помощью grunt и almondjs.

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"
            }
        }
    },

Я могу заставить его работать нормально в миндале, если я поставил его вверху файла в вызове define, но не рекомендуется ли AMD в том, чтобы сохранить его?

4b9b3361

Ответ 1

В соответствии с документацией Almond он лучше всего работает с нединамической загрузкой и всем, упакованным в один файл.

Вы должны иметь возможность устанавливать "findNestedDependencies" в true в своих параметрах компиляции, чтобы гарантировать, что ваши входящие вызовы будут включены как часть сборки.