2017-06-04 2 views
0

Ich würde gerne wissen, welche Methoden zur Verfügung stehen, um anzugeben, welche Module meine App basierend auf einer Zielplattform importieren soll. Ich möchte verschiedene Implementierungen für dieselbe Schnittstelle in Typoskript für einen Browser und für einen Nodejs importieren.Knoten/Javascript importieren verschiedene Module basierend auf der Zielplattform?

Wir haben so etwas wie

#ifdef windows 
#include "windowsimplementation.h" 
#endif 

in C++

Wie ich etwas ähnliches mit Typoskript Knoten und browserify erreichen könnte?

+0

Möglicherweise ohne zu schreiben, wenn Anweisungen im Code und Vermeidung der Knotenimplementierung im browserify-Bundle verfügbar gemacht werden. – Azarus

Antwort

0

In NodeJS, können Sie es die folgende Art und Weise tun, wie pro diesen Beitrag: How do I determine the current operating system with Node.js

// in Nodejs 
 
// possible values for process.platform 'darwin', 'freebsd', 'linux', 'sunos' or 'win32' 
 
var moduleString = { 
 
    'win32': 'windows-node-module', 
 
    'darwin': 'darwin-node-module', 
 
    // ... and so on 
 
} 
 

 
var module = require(moduleString[process.platform]);

Im Browser können Sie das Betriebssystem durch das überprüfen navigator Objekt:

// in Browser 
 
// possible values windows, mac, linux 
 
var moduleString = { 
 
    'win': 'windows-browser-module', 
 
    'mac': 'mac-browser-module', 
 
    'linux': 'linux-browser-module', 
 
} 
 

 
function getOS(){ 
 
    return navigator.appVersion.indexOf("Win") != -1 ? 'win' : 
 
    (navigator.appVersion.indexOf("Mac") != -1) ? 'mac' : 'linux'; 
 
} 
 

 
var module = require(moduleString[getOS()]);

+0

"Möglicherweise ohne zu schreiben, wenn Anweisungen im Code", da ich Typoskript verwende. – Azarus

+0

Wie viele Plattformen zielen Sie? –

+0

Browser und Nodejs in Nodejs Ich habe Code-Basis geteilt, die ich einschließen und verschiedene Bibliotheken verwenden sollte. – Azarus

Verwandte Themen