Я пытаюсь оптимизировать свой проект javascript с оптимизатором r.js из requirejs. Я использую модули amd и non-amd в своем проекте. Будет две среды: одна с средой requirejs, а другая без среды requirejs. Файлы в среде non-requirejs не должны запрашивать или определять вызовы. Комбинируя amd-модули в пакеты с использованием r.js, хорошо иметь вызов define с именем пакета в конце файла. Но для среды non-requirejs после оптимизации файлов они также получают определение вставки в конце файла с именем модуля.Как пропустить определение, включаемое в конце пакета, при объединении файлов сценариев не-amd с использованием оптимизатора requirejs r.js?
Предположим, у меня есть четыре файла A и B, которые являются модулями AMD, а C и D - не-AMD.
моего build.js подобно этому
({
appDir: "../",
baseUrl: "./",
dir : "../../../output",
paths: {
A : '../somepath/to/A',
B : '../somepath/to/B'
},
modules : [
{
name : 'bundle1',
create : true,
include : ['A', 'B']
},
{
name : 'bundle2',
create : true,
include : ['C', 'D']
}
],
// removeCombined : true,
cjsTranslate: false,
optimizeCss : "none",
skipModuleInsertion: true,
optimize: "uglify",
fileExclusionRegExp: /^(((r|app.build)\.js)|(v0))$/,
keepBuildDir: false,
bundlesConfigOutFile: "bundles.js",
onModuleBundleComplete : function(data) {
console.log(data)
}
})
Это пучки драм-файл выглядит следующим образом.
define('A', function(){
//some stuff of A
});
define('B', function(){
//some stuff of B
});
define('bundle1',function(){});
В комплекте поставки не-драм-файл выглядит
//some stuff of C
});
//some stuff of D
define('bundle2',function(){});
Как разрешить эту ситуацию. Я просмотрел документы оптимизации и example.build.js. все еще не мог понять путь. Я что-то упускаю ? Есть ли способ исключить этот вызов define в конце не-amd-модулей. Если да, то как?