我想知道有哪些方法可以指定应用程序根据目标平台导入哪些模块。我想在浏览器和nodejs的typescript中导入相同接口的不同实现。
我们有像
这样的东西#ifdef windows
#include "windowsimplementation.h"
#endif
在c ++中
如何使用typescript节点和browserify实现类似的功能?
答案 0 :(得分:1)
我的应用程序应该基于目标平台导入哪些模块
使用development:
adapter: postgresql
encoding: utf8
database: app_dev
username: dev_user
password: dev_pass
host: localhost
port: 5432
中的browser
媒体资源。
建议将package.json
实现创建为默认值,并将node
指向从中生成的定义。有关类型的更多信息:https://egghead.io/lessons/typescript-create-high-quality-npm-packages-using-typescript
答案 1 :(得分:0)
在nodejs中,您可以按照以下方式执行此操作: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]);
在浏览器中,您可以通过navigator
对象检查操作系统:
// 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()]);