Articles of 跨平台

跨公共开发/浏览器开发的最佳实践

目前,我沿着IS_CJS和IS_BROWSER方向通过Google Closure Compiler使用了一些defines ,只是有不同的文件( browser.myproject.js , cjs.myproject.js等)。 这是做事的标准方式吗? 如果不是,那么它有什么优势?

与Phonegap应用程序集成节点

我想开发一个混合的跨平台的应用程序,创build一个套接字连接到给定的IP。 我已经使用node.js中的webTCP模块通过从cmd运行节点来启动服务器来实现它。 现在我想用Phonegap把它打包到一个应用程序中。 但我的问题是如何运行节点(启​​动服务器)在手机通过使用phonegap创build的应用程序。 我们需要在手机中安装节点吗? 如果是的话,我该怎么做? 提前感谢。

REST API安全性和CrossPlatform

我正在用node.js工作其余的api。 我在/注册端点中创build了jwt-token。 然后发送这个令牌每个iOS应用程序,Windows Phone应用程序请求Authoriziton头。 所以API试图find包含这个令牌的用户。 如果它已经返回响应。 我担心安全。 每个人都将监控创build用户的API地址,并获取令牌,然后使用此令牌的所有端点。 所以会发布数据到其他模式和应用程序无用数字,死亡。 如何防止这种情况? 本机iOS,Windows Phone应用程序和用于此API的网站。 处理安全性和用户pipe理的最好方式有点像跨平台应用程序的API? 这个结构是否有很好的文档? 有用户scheme。 var userSchema = mongoose.Schema({ token:String, favorites:[favorites], local : { username:String, email: String, password: String, sex:Number }, facebook: { id:String, token:String, email:String, name:String }, lists:[{listid:String,insertdate:Date}] }); 每个端点控制这样的授权 function ensureAuthorized(req, res, next) { var bearerToken; console.log(req.headers); var bearerHeader = req.headers["authorization"]; if (typeof […]

如何编写一个跨平台的npm包装程序包,并避免不必要的“条件依赖性”安装时的EBADPLATFORM错误?

假设我想创build一个跨平台的frobnicator包。 我很幸运,发现需要一些npm包,但它们都依赖于平台 frobnicator-win frobnicator-mac frobnicator-linux 所以我只需要一个跨平台的包装器。 代码可能非常简单(假设API一致性): var frobnicator; if (process.platform == 'win32') { frobnicator = require('frobnicator-win') } else if (process.platform == 'darwin') { frobnicator = require('frobnicator-mac') } else { // let's assume this will work frobnicator = require('frobnicator-linux') } // do the thing 问题在于:每个小模块都是一个好公民,并且在package.json中的相应条目中声明了它们的兼容平台: "os": ["win32"] / "os": ["darwin"] / "os": ["linux"] 这里有两个问题: 1)我依赖于依赖于平台的模块(我从来不需要所有这些模块,只有一个),但是我必须将它们全部放在我的package.json […]

强制安装npm以安装其他平台的可选依赖项

我正在构buildVisual Studio Team Services的构build任务。 在这个任务中,我正在使用7zip-bin为Linux,Mac和Windows打包7zip的二进制文件。 这是非常好的,如果我有能力只将package.json部署到构build服务器,但是没有…构build任务包含构build时的所有依赖关系,它将工作。 有没有办法强制npm下载所有操作系统可选软件包? 或者我将不得不在构build期间自己下载文件并提取它? 现在我正在使用 npm install 7zip-bin –save 其结果是: C:\temp>npm install npm WARN optional SKIPPING OPTIONAL DEPENDENCY: 7zip-bin-linux@^1.0.3 (node_modules\7zip-bin\node_modules\7zip-bin-linux): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for 7zip-bin-linux@1.0.3: wanted {"os":"linux","arch":"any"} (current: {"os":"win32","arch":"x64"}) npm WARN optional SKIPPING OPTIONAL DEPENDENCY: 7zip-bin-mac@^1.0.1 (node_modules\7zip-bin\node_modules\7zip-bin-mac): npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for […]

在Windows上开发并构build在Linux上的代码上使用NodeJs的Grunt?

如何使用nodejs构build跨平台项目? 我在Windows上开发,但是我的代码库build立在一个基于Linux的CI服务器上。 它使用Grunt构build前端,并且需要几个nodejs模块。 Nodejs需要将模块本地安装到项目中,以便由grunt.task.loadNpmTasks加载。 这个问题是我必须从Windows或Linux的某个地方安装它们,而当我从一个地方安装它时,它不能在另一个地方工作。 我的项目需要的列表模块安装在本地,如下所示: npm install connect-livereload –production npm install time-grunt –production npm install load-grunt-tasks –production npm install jshint-stylish –production npm install load-grunt-tasks –production npm install grunt-contrib-copy –production npm install grunt-contrib-concat –production npm install grunt-contrib-uglify –production npm install grunt-contrib-compass –production npm install grunt-contrib-jshint –production npm install grunt-contrib-cssmin –production npm install grunt-contrib-connect –production npm […]

什么是在单个构build中打包跨平台电子应用程序的一些机制?

我正在开发基于Electron的桌面应用程序,并使用electron-packager来创build可执行文件。 该应用程序使用一些二进制节点模块,如bcrypt 。 在我的Mac上,我打包的应用程序,针对OSX和Windows。 生成的包在OSX上运行良好。 但是,当我在Windows 8.1 64位上运行生成的Windows包(.exe和依赖关系)时,该应用程序会引发错误(相当可观): 是否有任何实践或工具可以帮助我在任何操作系统中执行一次打包,即使应用依赖于二进制模块,并为Windows,OSX和Linux生成可执行文件? 例如,我想在OSX上运行这个版本来生成所有三个操作系统的可执行文件,而不必为每个平台重复打包

Electron和Cordova for Windows构build

Electron可以允许使用JavaScript,HTML和CSS开发桌面应用程序(.exe)。 它基于Node.js和Chromium 看来我也可以用Cordova做同样的事情,但是Cordova不能做到这一点,Electron可以(就桌面应用而言)? 我需要构build一个可以全屏显示的应用程序,使用AppCache(清单)并使用IndexedDB存储数据。 它需要与条形码扫描仪和串行端口通信(例如: https : //github.com/voodootikigod/node-serialport )

如何在Node.js中注册一个url协议处理程序

我正在开发一个命令行节点模块,并希望能够通过网站上的链接启动它。 我想注册一个自定义的协议my-module://这样链接将有以下格式: my-module://action:some-action并点击它们将启动节点包。 如果没有一个节点API(我敢肯定不会有),那么有没有办法通过调用系统命令从节点执行? 它必须在Windows,Linux和MacOS上运行。

node.js是像Perl和Python这样的传统脚本语言的可行替代品吗?

最近我已经不再爱用Perl作为一种跨平台的通用脚本语言,无论是Python还是Ruby,都没有真正吸引过我。 但是在浏览器中,我越来越习惯使用JavaScript,在V8等当代引擎中performance得相当不错,而node.js现在已经真正起飞了好几年了。 但是node.js主要用于服务器端networking编程。 正如它在主页上所声明的那样: 基于V8的事件驱动的I / O服务器端JavaScript环境。 我想知道node.js目前是否适合作为* nix和Windows上的一般脚本语言来替代Perl,Python和Ruby。 我没有多less关于它被用于这种方式的讨论,但它似乎有一个广泛的社区,我没有注意到任何说它不适合这种使用。 这种方式广泛使用吗? 还是缺乏这种types的关键function或模块?