nodejs跨平台应用
nodejs官网https://nodejs.org/download/release/
一、发行版
1)ubuntu
sudo apt-get install nodejs
sudo apt-get install npm
2)iOS
第一步:安装Homebrew 命令: ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
第二步:安装node.js 命令: brew install node
第三步:检查是否更新 命令: node -v
https://blog.csdn.net/luochuanad/article/details/53885554
3)android
先需要安装Termux,这是Android平台下的一个开源的终端模拟器。
Termux带有一个包管理器apt,使用apt可以直接安装nodejs:
apt update
apt install nodejs
https://cnodejs.org/topic/589afab18c475cf5794dac5d
安装nodejs,在线自动安装虽然省事,但是不便于版本管理。所以建议手动解压安装包,然后配置环境变量,如下所示。
安装完如果npm安装不了库,更换一下源地址 npm config set registry https://registry.npm.taobao.org
二、交叉编译版本(ARM / X86 / MIPS)
1)安装
cp node-v4.9.1-linux-armv7l.tar.gz /usr/local/
cd /usr/local/
tar xvf node-v4.9.1-linux-armv7l.tar.gz
2)添加环境变量
export PATH=$PATH:/usr/local/node-v4.9.1-linux-armv7l/bin
export LD_LIBRARY_PATH=/usr/local/node-v4.9.1-linux-armv7l/lib:$LD_LIBRARY_PATH
添加到/etc/profile文件或者~/.bashrc文件
vi ~/.bashrc
export PATH=$PATH:/usr/local/node-v4.9.1-linux-armv7l/bin
source ~/.bashrc
或者直接echo "export PATH=$PATH:/usr/local/node-v4.9.1-linux-armv7l/bin " >> ~/.bashrc
source ~/.bashrc
3)源码编译
用openwrt和buildroot比较方便
openwrt
我的板是atmel sama5d3, 直接有现成配置好的
nodejs版本补丁
https://github.com/qianguozheng/nodejs-openwrt
buildroot
配置的外部编译器
https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/
a.编译自带的nodejs-v8.9.4没报错。
b.编译nodejs-v4.9.1报了两个错,bz2和cares模块是多余的,注释掉即可。
err1: no module bz2
output/build/host-nodejs-4.9.1/deps/v8/tools/js2c.py
output/build/nodejs-4.9.1/deps/v8/tools/js2c.py
#import bz2
err2: configure: error: no such option: --shared-cares
package/nodejs/nodejs.km
# --shared-cares \
c.编译nodejs-v6.14.3
err1: node.cc:(.text+0x779c): undefined reference to `node::openssl_config'
注释掉out/build/nodejs-6.14.3/src/node.cc里的4个openssl_config
建议用buildroot内置的编译器(版本也可以配置),会少花些时间改错误。
三 、node安装第三方库
ubuntu
websocket 安装库 npm install websocket
重新编译 npm rebuild
arm下
websocket 安装库 npm install websocket --arch=arm
重新编译 npm rebuild --arch=arm
四、编译
1) ubuntu
分别在websocket根目录和proxy目录
npm rebuild
2) arm
export CC=arm-linux-gnueabihf-gcc
export CXX=arm-linux-gnueabihf-g++
export LD=arm-linux-gnueabihf-ld
export RAINLIB=arm-linux-gnueabihf-rainlibn
export AR=arm-linux-gnueabihf-ar
export LINK=arm-linux-gnueabihf-g++
分别在websocket根目录和proxy目录
npm rebuild --arch=arm
nodejs跨平台应用的更多相关文章
- nodejs+MQTT协议实现远程主机控制
摘抄自百度:MQTT(MessageQueuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分. 所谓物联网,就是“万物互 ...
- 【干货分享】Node.js 中文学习资料和教程导航
这篇文章来自 Github 上的一位开发者收集整理的 Node.js 中文学习资料和教程导航.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念,它的目标是帮助程 ...
- node.js中文资料导航 Mark
Node.js HomePage Infoq深入浅出Node.js系列(进阶必读) Node.js中文文档 被误解的 Node.js Node.js C++ addon编写实战系列 热门node.js ...
- 【干货分享】Node.js 中文资料导航
这篇文章与大家分享一批高质量的的 Node.js 中文资料.Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用 Node ...
- node.js中文资料导航
以下资料来自gitHUb上面:https://github.com/youyudehexie/node123 Node.js HomePage Node官网七牛镜像 Infoq深入浅出Node.js系 ...
- 用Web抓包分析工具Livepool 实现本地替换开发
这是官方的介绍: LivePool 是一个基于 NodeJS,类似 Fiddler 支持抓包和本地替换的 Web 开发调试工具,是 Tencent AlloyTeam 在开发实践过程总结出的一套的便捷 ...
- Livepool
LivePool Fiddler Like cross platform debugging proxy for web developers base on NodeJS LivePool 是一个基 ...
- 千里之行始于足下,node.js 资源中文导航
响应@jiyinyiyong 号召,cnodjs 好的资源蛮多的,的确欠缺分类,在一群FAQ中,的确很容易沉下去,根据自己对node.js的理解,做成一个资源导航,PS:如果觉得合适,希望能够合并的c ...
- 一些官方的github地址
阿里巴巴开源github地址:https://github.com/alibaba 腾讯开源github地址:https://github.com/Tencent 奇虎360github地址:http ...
随机推荐
- WCF服务三:svc文件详解
在前面的文章中讲述过WCF服务的宿主程序主要包括:三种,在那篇文章中,简单的描述了如何把一个WCF服务寄宿到IIS上面,这篇文章中将具体讲述如何把一个WCF服务寄宿到IIS上面. 一.新建一个WCF服 ...
- HTML5关于上传API的一些使用(上)
HTML5提供了很多有用的API,其中就包括上传的API,XMLHttpRequest2.0,在HTML5时代之前,需要进行二进制的上传一般都会才用flash的方案,但是当XMLHttpRequest ...
- HeadFisrt 设计模式03 装饰者
类应该对扩展开放, 对修改关闭. 所谓装饰者模式, 是指用其他的类来装饰某个类, 装饰者说白了就是使用 has-a 来代替 is-a 隐喻 咖啡店, 有很多种咖啡, 咖啡里还要增加一些 milk, 面 ...
- Thinlphp 模版 foreach 嵌套在 另一个循环出现不能在次循环问题。
把 foreach 循环改成 volist 就可以重置循环所以的数据.
- 关于Unity的C#基础学习(二)
一.Debug的使用 int a=3; Debug.Log("a="+a); 二.整数的定义 int m; Debug.Log(m); //C#比C更严谨,没有初始化的变量打印出 ...
- jQuery的end()方法使用详解
end()方法的定义和用法: end()方法能够回到最近的一个"破坏性"操作之前,即将匹配的元素列表变为前一次的状态.如果没有破坏性操作将返回一个空集.破坏性操作的概念:指任何改变 ...
- nyoj1237 最大岛屿(河南省第八届acm程序设计大赛)
题目1237 pid=1237" style="color:rgb(55,119,188)">题目信息 执行结果 本题排行 讨论区 最大岛屿 时间限制:1000 m ...
- iOS开发中多线程基础
耗时操作演练 代码演练 编写耗时方法 - (void)longOperation { for (int i = 0; i < 10000; ++i) { NSLog(@"%@ %d&q ...
- Struts2_day02--Action获取表单提交数据
Action获取表单提交数据 1 之前web阶段,提交表单到servlet里面,在servlet里面使用request对象里面的方法获取,getParameter,getParameterMap 2 ...
- C++ 访问控制 public, protected, private, 友元
1. 变量属性与继承之间的关系 #include <iostream> using namespace std; class A { public: int x; protected: i ...