Встроенный require() работает в requirejs, но не с оптимизированной сборкой миндаля
Как видно из названия, мои встроенные вызовы require работают в неоптимизированном режиме 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 не предпочтительнее сохранять его стройным?
1 ответ
Согласно документации Almond, она лучше всего работает с не динамической загрузкой, и все упаковано в один файл.
Вы должны иметь возможность установить для "findNestedDependencies" значение true в параметрах компиляции, чтобы гарантировать, что ваши встроенные вызовы требуются как часть сборки.