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 ...
随机推荐
- 清除Css中select的下拉箭头样式
select {/*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/border: solid 1px #000; /*很关键:将默认的select选择框样式清除*/appeara ...
- 22SpringMvc_jsp页面上的数据传递到控制器的说明
假设有这个一个业务:在jsp页面上写入数据,然后把这个数据传递到后台. 效果如下:
- Spring Boot自动配置类
http://docs.spring.io/spring-boot/docs/current/api/overview-summary.html http://docs.spring.io/sprin ...
- OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言,使页面更简洁;
OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言,使页面更简洁: 支持运算符(如+-*/),比普通的标志具有更高的自由度和更强的功能 ...
- $-------JSP中表达式语言的$特殊字符的作用
JSP 中EL表达式用法详解 EL 全名为Expression Language EL 语法很简单,它最大的特点就是使用上很方便.接下来介绍EL主要的语法结构: ${sessionScope.user ...
- PHP中strlen和mb_strlen函数的区别
strlen strlen — 获取字符串长度 int strlen ( string $string ) 返回给定的字符串 string 的长度. mb_strlen int mb_strlen ( ...
- MongoDB基本用法
MongoDB基本用法(增删改高级查询.mapreduce) 分享一下我经常用到的自己写的mongo用法示例 该示例基于当前最新的mongo驱动,版本为mongo-2.10.1.jar,用junit写 ...
- galera安装之编译安装xtrabackup 2.2.11
----1.编译安装percona-xtrabackup yum -y install cmake gcc gcc-c++ libaio libaio-devel automake autoconf ...
- RMI几种公布和引用服务的方式
RMI是Java原生的分布式服务机制.支持Java对Java的分布式訪问.採用Java的序列化协议进行CodeC操作. 这里简单说下RMI公布服务和client引用服务的方式. RMI公布服务时支持两 ...
- insmod 内核模块参数传递
对于如何向模块传递参数,Linux kernel 提供了一个简单的框架.其允许驱动程序声明参数,并且用户在系统启动或模块装载时为参数指定相应值,在驱动程序里,参数的用法如同全局变量. 通过宏modul ...