Pyramid - это библиотека зависимостей, которая хорошо справляется с этой ситуацией. По сути, вы можете определить свои зависимости (в данном случае библиотеки javascript) в файле dependencyLoader.js, а затем использовать Pyramid для загрузки соответствующих зависимостей. Обратите внимание, что он загружает зависимости только один раз (поэтому вам не нужно беспокоиться о дубликатах). Вы можете сохранить свои зависимости в одном файле, а затем загружать их динамически по мере необходимости. Вот пример кода.
Файл: dependencyLoader.js
//Set up file dependencies
Pyramid.newDependency({
name: 'standard',
files: [
'standardResources/jquery.1.6.1.min.js'
//other standard libraries
]
});
Pyramid.newDependency({
name:'core',
files: [
'styles.css',
'customStyles.css',
'applyStyles.js',
'core.js'
],
dependencies: ['standard']
});
Pyramid.newDependency({
name:'portal1',
files: [
'portal1.js',
'portal1.css'
],
dependencies: ['core']
});
Pyramid.newDependency ({
Название: 'portal2',
файлы: [
'Portal2.js',
'Portal2.css'
],
зависимости: ['core']
});
HTML-файлы
<head>
<script src="standardResources/pyramid-1.0.1.js"></script>
<script src="dependencyLoader.js"></script>
</head>
...
<script type="text/javascript">
Pyramid.load('portal1');
</script>
...
<script type="text/javascript">
Pyramid.load('portal2');
</script>
Таким образом, общие файлы загружаются только один раз. И вы можете выбрать, как вы загружаете свои зависимости. Вы также можете просто определить дополнительную группу зависимостей, такую как
Pyramid.newDependency({
name:'loadAll',
dependencies: ['portal1','portal2']
});
А в html просто загрузите все зависимости сразу.
<head>
<script src="standardResources/pyramid-1.0.1.js"></script>
<script src="dependencyLoader.js"></script>
<script type="text/javascript">
Pyramid.load('loadAll');
</script>
</head>
Некоторые другие функции, которые также могут помочь, это то, что он может обрабатывать файлы других типов (например, css), а также может объединять ваши отдельные файлы разработки в один файл, когда он готов к выпуску. Проверьте детали здесь - Pyramid Docs
примечание: я предвзят, так как работал над Пирамидой .