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

官网http://archive.openwrt.org/

我的板是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跨平台应用的更多相关文章

  1. nodejs+MQTT协议实现远程主机控制

    摘抄自百度:MQTT(MessageQueuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分. 所谓物联网,就是“万物互 ...

  2. 【干货分享】Node.js 中文学习资料和教程导航

    这篇文章来自 Github 上的一位开发者收集整理的 Node.js 中文学习资料和教程导航.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念,它的目标是帮助程 ...

  3. node.js中文资料导航 Mark

    Node.js HomePage Infoq深入浅出Node.js系列(进阶必读) Node.js中文文档 被误解的 Node.js Node.js C++ addon编写实战系列 热门node.js ...

  4. 【干货分享】Node.js 中文资料导航

    这篇文章与大家分享一批高质量的的 Node.js 中文资料.Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用 Node ...

  5. node.js中文资料导航

    以下资料来自gitHUb上面:https://github.com/youyudehexie/node123 Node.js HomePage Node官网七牛镜像 Infoq深入浅出Node.js系 ...

  6. 用Web抓包分析工具Livepool 实现本地替换开发

    这是官方的介绍: LivePool 是一个基于 NodeJS,类似 Fiddler 支持抓包和本地替换的 Web 开发调试工具,是 Tencent AlloyTeam 在开发实践过程总结出的一套的便捷 ...

  7. Livepool

    LivePool Fiddler Like cross platform debugging proxy for web developers base on NodeJS LivePool 是一个基 ...

  8. 千里之行始于足下,node.js 资源中文导航

    响应@jiyinyiyong 号召,cnodjs 好的资源蛮多的,的确欠缺分类,在一群FAQ中,的确很容易沉下去,根据自己对node.js的理解,做成一个资源导航,PS:如果觉得合适,希望能够合并的c ...

  9. 一些官方的github地址

    阿里巴巴开源github地址:https://github.com/alibaba 腾讯开源github地址:https://github.com/Tencent 奇虎360github地址:http ...

随机推荐

  1. android monkey app乱点测试

    Monkey是Android中的一个命令行工具 查看包名:查看电脑中某一位置的apk文件的包名:PC打开CMD-进入TMG目录-运行设备--查看包名aapt dump badging *.apk(ap ...

  2. Oracle dbms_random随机数包详解

    Oracle dbms_random包主要用于获得随机数,可以为数字也可以为字母等,还可以实现混拼.常用函数如下: dbms_random.value 生成一个指定范围的38位随机小数(小数点后38位 ...

  3. [转]VC++下使用ADO操作数据库

    (1).引入ADO类 1 2 3 #import "c:program filescommon filessystemadomsado15.dll" no_namespace re ...

  4. (转)Python中的random模块

    Python中的random模块用于生成随机数.下面介绍一下random模块中最常用的几个函数. random.random random.random()用于生成一个0到1的随机符点数: 0 < ...

  5. DML语句报错是因为控制文件无法扩大还是另有原因?

    今天处理了一个很有意思的故障问题,来龙去脉是这种: 客户来电咨询控制文件无法扩展,数据库仅仅能查询但不支持DML,须要远程支持.接到电话的第一反应就是CONTROL_FILE_RECORD_KEEP_ ...

  6. 工作流JBPM_day01:1-说明_MyProcessDesigner_流程设计器

    工作流JBPM_day01:1-说明 先只做请假功能,怎么做? (请假可以和考勤整合到一起) 1,银行(拿号---叫号---办理) 2,餐馆(点菜---上菜---结账) 3,网购(下订单--配送--收 ...

  7. Unreal新建C++类或C++项目失败

    出现以下错误: ... UnrealBuildTool Exception: System.UnauthorizedAccessException.... ... 是C盘无法访问权限的错误,请参考上一 ...

  8. C语言跳出循环

    使用while或for循环时,如果想提前结束循环(在不满足结束条件的情况下结束循环),可以使用break或continue关键字. break关键字 在<C语言switch语句>一节中,我 ...

  9. nexus的pom配置

    <groupId>com .sms</groupId><artifactId>sms </artifactId><packaging>pom ...

  10. 160518、java中使用百度地图(超级简单)

    第一步:导入如下内容,红色的部分需要申请(个人通过手机号就可以申请) <script type="text/javascript" src="http://api. ...