Bisher habe ich Apps mit dem NativeScript-Framework entwickelt und bin damit auch immer gut gefahren. In Laufe des Jahres war es an der App-Front etwas ruhiger geworden, inzwischen steht aber wieder das ein oder andere Projekt an. Daher hatte ich vor einigen Tagen meine Entwicklungsumgebung auf einen aktuellen Stand gebracht. Dabei war ich dann auch darauf gestoßen, dass NativeScript inzwischen von nStudio weiterentwickelt wird. Ob Grund zur Sorge besteht kann ich noch nicht sicher sagen, aber einige Links auf der Internetseite laufen ins Leere aber das System scheint noch aktualisiert zu werden.

Leider führte die Aktualisierung auf meinem System dazu, dass sich die Apps nicht mehr Debuggen ließen. Natürlich kann man auch ohne zu debuggen Software entwickeln, aber diese Möglichkeit der Fehlersuche erleichtert die Arbeit schon enorm. Nach dem Update bekam ich bei den Breakpoints aber leider immer nur die Meldung, dass der zugehörige Code nicht gefunden werden könne, weil möglicherweise ein Problem mit dem SourceMapping vorliegt. Aber eine einfache Anpassung an der launch.json brachte Abhilfe und ich konnte mit dem Visual Studio Code und einem Android-Smartphone wieder debuggen.

   "configurations": [      
        {
            "name": "Launch on Android",
            "type": "nativescript",
            "request": "launch",
            "platform": "android",
            "appRoot": "${workspaceRoot}",
            "sourceMaps": true,
            "watch": true,
            "sourceMapPathOverrides": {
                "webpack:///*": "${workspaceRoot}/src/*"
            },"tnsArgs":["--debug-brk"]
        },

 

Mit dem Eintrag sourceMapPathOverrides bringt man die Pfade in webpack und den Quellcode in Einklang. In vielen Beispielen findet man hier den Pfad ${workspaceRoot}/app/*. Der passt bei NativeScript aber leider nicht. Das Rootverzeichnis liegt hier in src. mit dem tns-Argument --debug-brk sorgt man dafür, dass der Debugger an einem Brakpoint anhält. Andernfalls kann es sein, dass der Debugger zu spät verbunden wird.