Ich versuche, ein iOS Titanium-Modul mit einem vorkompilierten CommonJS-Modul zu erstellen. Da die Readme-Datei sagt:iOS CommonJS-Modul gibt "undefined ist kein Konstruktor" Fehler
function ModuleTest(url){
if(url){
return url;
}
}
exports.ModuleTest = ModuleTest;
Ich verwende (auch versucht, mit 5.3.0.GA) das 5.1.2.GA SDK:
All JavaScript files in the assets directory are IGNORED except if you create a file named "com.moduletest.js" in this directory in which case it will be wrapped by native code, compiled, and used as your module. This allows you to run pure JavaScript modules that are pre-compiled.
ich die Datei wie folgt erstellt haben und ich kann das Modul erfolgreich entweder mit python build.py
oder titanium build --platform iOS --build-only
bauen. in meinem Test-App Tun Dann:
var test = require('com.moduletest');
var url = new test.ModuleTest('http://url');
gibt mir diese Fehlermeldung:
undefiniert ist kein Konstruktor. Ich habe viele Alternativen versucht, aber nichts scheint zu funktionieren und ich habe keine Hilfe bei der Dokumentation über vorkompilierte JS-Module für iOS gefunden. Eigentlich funktioniert der gleiche Prozess gut für Android! Haben Sie eine Idee warum?
Meine Umgebung:
XCode 7.3.1
Betriebssystem Name - Mac OS X Version - 10.11.5 Architektur - 64bit # CPUs - 8 Speicher - 16.0GB
Node.js Node.js Version - 0.12.7 npm Version - 2.11.3
Appcelerator CLI Installer - 4.2.6 Core-Package - 5.3.0
Titanium CLI CLI Version - 5.0.9 Knoten-appc Version - 0.2.31
Vielleicht ist das etwas im Zusammenhang mit meiner Knotenversion oder appc CLI, nicht sicher =/
Vielen Dank!
Wo haben Sie Ihre Datei 'com.moduleter.js' abgelegt? –
Hallo Brenton, ich habe es in den Ordner Assets moduleTest/assets/com.moduletest.js http://i.imgur.com/4OW2i86.png –
Für commonjs-Module können Sie sie einfach direkt in Ihr App-Projekt einfügen. Versuchen Sie, diese Datei in '/app/lib/com.moduletest.js 'Ihrer App zu speichern. –