Mimo, że korzystanie z mechanizmu CDN jest bardzo wygodne, czasami warto posiadać kopię zależności lokalnie. Sprawdza się to chociażby wtedy, gdy zdaża się nam praca bez dostępu do Internetu (mimo, że może to w dzisiejszych czasach brzmieć jak herezja) lub w przypadku chęci korzystania z zasobów niedostępnych z wykorzystaniem Content Delivery Network. Jednym z narzędzi, które pozwala nam na zarządzanie zależnościami JavaScript jest Bower, który posiada m.in. pakiety Dojo Toolkit.

Spróbuję pokrótce opisać sposób zarządzania zależnościami z wykorzystaniem menadżera Bower na podstawie projektu opisanego w poprzednim artykule. Aby rozpocząć korzystanie z tego narzędzia, należy w pierwszej kolejności zainstalować Node.js, który z pomocą narzędzia npm, pozwoli na instalację niezbędnego oprogramowania:

npm install bower -g

Aby zaprzęc Bower do pracy z bieżącym projektem, wystarczy polecenie:

bower init

Powinno to uruchomić w konsoli prosty kreator, który przeprowadzi nas przez utworzenie podstawowego pliku bower.json:

{
	"name": "Pogodynka",
	"description": "",
	"main": "",
	"authors": [
		"Szymon Napierała"
	],
	"license": "MIT",
	"homepage": "",
	"ignore": [
		"**/.*",
		"node_modules",
		"bower_components",
		"test",
		"tests"
	]
}

Zależności można określać w sekcji “dependencies” w pliku bower.json:

{
	(...),
	"dependencies": {
		"dojo/dojo": "1.12.2"
	}
}

Instalacja sprowadza się do wykonania instrukcji:

bower install

Powyższa komenda, powinna pobrać wszystkie zależności do katalogu “bower_components”. Aby móc rozpocząć korzystanie z nich, wystarczy wskazanie lokalizacji “dojo.js” w pliku “index.html”:

<script src="bower_components/dojo/dojo.js"></script>

Po serii tak przeprowadzonych modyfikacji, aplikacja powinna wciąż działać bez widocznych zmian. Jedyną różnicą, powinna być lokalizacja zależności projektu, które tym razem mechanizm AMD będzie rozwiązywał lokalnie na podstawie zawartości katalogu “bower_components”.

Przykładowy projekt: