Buildroot通过npm安装nodejs应用包的方式

首先buildroot安装nodejs,以及附带npm是可以的但是npm但是的位置不是target的系统目录中,是安装到host主机目录下面。

设置环境变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
export TARGET_STAGING=/home/zext/RV1126B/buildroot/output/rockchip_rv1126b/host/usr

# Node-gyp native 编译工具链
export CC=/home/zext/RV1126B/buildroot/output/rockchip_rv1126b/host/bin/aarch64-buildroot-linux-gnu-gcc
export CXX=/home/zext/RV1126B/buildroot/output/rockchip_rv1126b/host/bin/aarch64-buildroot-linux-gnu-g++
export AR=/home/zext/RV1126B/buildroot/output/rockchip_rv1126b/host/bin/aarch64-buildroot-linux-gnu-ar
export LD=/home/zext/RV1126B/buildroot/output/rockchip_rv1126b/host/bin/aarch64-buildroot-linux-gnu-ld

# 指定 npm 安装前缀
export npm_config_prefix=$TARGET_STAGING

export NODEJS_HOST=/home/zext/RV1126B/buildroot/output/rockchip_rv1126b/host/usr
export PATH=$NODEJS_HOST/bin:$PATH

sudo npm install --prefix $TARGET_STAGING -g \
app-root-path dotenv pino pino-pretty pino-roll redis \
socket.io-client ts-morph tsyringe typed-emitter zeromq ioredis
sudo npm install --prefix $TARGET_STAGING -g eslint eslint-config-prettier eslint-plugin-prettier prettier reflect-metadata tsc-alias tsx typescript

在 Buildroot target 中,你的 rootfs 路径通常在:

1
/home/zext/RV1126B/buildroot/output/rockchip_rv1126b/target

将 staging 下的 npm 模块和可执行文件拷贝到 target:

1
2
3
4
5
# 拷贝模块
cp -r $TARGET_STAGING/lib/node_modules/* /home/zext/RV1126B/buildroot/output/rockchip_rv1126b/target/usr/lib/node_modules/

# 拷贝可执行文件
cp -r $TARGET_STAGING/bin/* /home/zext/RV1126B/buildroot/output/rockchip_rv1126b/target/usr/bin/