2012-06-01 12 views
7

Ich lerne über Google Closure-Tools, indem Sie ein einfaches JavaScript-Spiel schreiben. Ich habe Probleme herauszufinden, wie man jsTestDriver so einrichtet, dass es mit der Schließbibliothek gut funktioniert.Verwenden von Verschlussbibliothek mit jsTestDriver

Konkret: Ich möchte den goog.require-Mechanismus verwenden, um zusätzliche JavaScript-Dateien hinzuzufügen, anstatt sie manuell zur Konfigurationsdatei hinzufügen zu müssen.

meyertee Vorschlag folgend habe ich ein einfaches Skript, um automatisch die Abhängigkeiten zu einer Konfigurationsdatei

#!/bin/bash 
cp tests/jsTestDriver.conf.proto tests/jsTestDriver.conf 
libs/closure-library/closure/bin/build/closurebuilder.py --root="./libs/closure-library" --root="./js" --namespace="lds" | sed "s#^# - \.\./#" >> tests/jsTestDriver.conf 

Die Tests/jsTestDriver.conf.proto Datei ist eine einfache Vorlage zu schreiben:

test: 
    - "*.js" 
load: 
    - ../libs/knockout-2.1.0.js 
# Crucial, the load key needs to be last, and this comment must be followed by a newline. 

Es ist ein sehr zerbrechliches Skript, aber hoffentlich wird jemand (außer mir) es nützlich finden.

+1

Danke für die Freigabe Ihrer Lösung, ich habe mein Projekt geändert, um auch die Python-Skripte zu verwenden (ich verwende tatsächlich calcdeps.py). Es ist besser als der Compiler, weil es Abhängigkeiten auffängt, die noch nicht mit Ihrem Projekt verknüpft sind - besser zum Testen von neuem Code - und es ist schneller. – meyertee

Antwort

4

Sie tun können, es halbautomatisch, indem man Closure Compile eine Manifest-Datei erzeugen, die folgende Ausgabe alle Dateien in der richtigen Reihenfolge der Abhängigkeit. Sie können diese Datei dann in relative Pfade umwandeln und in die JsTestDriver-Konfigurationsdatei einfügen. So mach ich es.
Sie könnten sogar ein Skript schreiben, das diese Umwandlung automatisch durchführt.

Dies ist der entsprechende Compiler Argument:

--output_manifest manifest.MF 

Es gibt einige Details über die Closure Compiler's Google Code Wiki

Edit: Es gibt auch einige Python scripts helfen Sie Abhängigkeiten zu berechnen. Sie können calcdeps.py oder closurebuilder.py verwenden, um eine Manifestdatei zu generieren, die sogar Dateien enthält, die von Ihrem Code nicht "benötigt" wurden.