JavaScript 使用指南
Node.js 使用指南
使用 apt
安装 Node.js
sudo apt-get update
sudo apt-get install -y nodejs npm
检查是否安装成功。
$ node -v
v18.13.0
$ npm -v
9.2.0
Bianbu 源中的 Node.js 默认版本为 v18.13.0,若想使用特定版本的 Node.js,请使用 NVM 安装。
使用 NVM 安装特定版本 Node.js
安装 NVM
根据 https://github.com/nvm-sh/nvm 提供的命令行下载并执行安装脚本,请根据该仓库替换最新的 NVM 版本号。
使用 curl
:
sudo apt install curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
或使用 wget
:
sudo apt install wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash
检查是否安装成功。
$ nvm -v
0.40.1
安装 Node.js
目前官方源中的 node 尚未适配 RISC-V,直接安装会导致错误,因此我们从 unofficial-builds 中下载已适配 RISC-V 的node。更多信息请参考 https://github.com/nodejs/unofficial-builds/
NVM_NODEJS_ORG_MIRROR=https://unofficial-builds.nodejs.org/download/release nvm install 20.16.0
检查是否安装成功。
$ node -v
v20.16.0
示例
clumsy-bird
克隆 demo 项目。
git clone https://github.com/ellisonleao/clumsy-bird
安装依赖。
cd clumsy-bird
npm install
sudo apt install grunt
运行服务。
grunt connect
你可以看到如下输出,服务默认部署在 http://0.0.0.0:8001
,在浏览器中打开该网页进行体验。
$ grunt connect
Running "connect:root" (connect) task
Waiting forever...
Started connect web server on http://0.0.0.0:8001
Electron 使用指南
准备工作
请先安装Node.js。
快速开始
git clone https://github.com/electron/electron-quick-start.git ~/electron-quick-start
安装 SpacemiT 的 Electron 包,
cd ~/electron-quick-start
ELECTRON_MIRROR=http://archive.spacemit.com/electron/ electron_use_remote_checksums=1 npm install electron@29.3.1
启动应用,
npm start
当看到下面界面,表示成功。
electron-builder使用指南
electron-builder 是一个用于简化 Electron 应用打包和发布的工具,支持多平台构建和自动更新功能。目前官方源中的 electron-builder 和相关组件未完全适配 RISC-V 平台,因此需要使用 SpacemiT 适配的内部版本。这里以 electron-quick-start 为打包项目。
准备工作
请先安装 Node.js。
克隆仓库
git clone https://github.com/electron/electron-quick-start.git
cd electron-quick-start
配置 package.json
vim package.json
在 scripts
下添加打包命令,分别用于目录、压缩包。这里使用了 SpacemiT 适配 RISC-V 的 Electron 镜像。
"scripts": {
"pack-dir": "ELECTRON_MIRROR=http://archive.spacemit.com/electron/ electron-builder --linux --dir",
"pack-tgz": "ELECTRON_MIRROR=http://archive.spacemit.com/electron/ electron-builder --linux tar.gz"
}
添加打包配置。
"build": {
"productName": "demo",
"directories": {
"output": "build"
},
"linux": {
"category": "Utility"
}
},
添加依赖项,请使用 @【仓库】/【依赖包】
来指定从哪个仓库下载包。@electron
指 SpacemiT 的 Node.js包仓库。
"devDependencies": {
"electron": "29.3.1",
"@electron/electron-builder": "25.0.0-alpha.5"
}
最后你的 package.json
会像这样:
{
"name": "electron-quick-start",
"version": "1.0.0",
"description": "A minimal Electron application",
"main": "main.js",
"scripts": {
"start": "electron .",
"pack-dir": "ELECTRON_MIRROR=http://archive.spacemit.com/electron/ electron-builder --linux --dir",
"pack-tgz": "ELECTRON_MIRROR=http://archive.spacemit.com/electron/ electron-builder --linux tar.gz"
},
"repository": "https://github.com/electron/electron-quick-start",
"keywords": [
"Electron",
"quick",
"start",
"tutorial",
"demo"
],
"author": "GitHub",
"license": "CC0-1.0",
"build": {
"productName": "demo",
"directories": {
"output": "build"
},
"linux": {
"category": "Utility"
}
},
"devDependencies": {
"electron": "29.3.1",
"@electron/electron-builder": "25.0.0-alpha.5"
}
}
配置仓库地址
npm config set @electron:registry https://git.spacemit.com/api/v4/projects/36/packages/npm/
安装依赖
这里通过镜像地址指定使用适配 RISC-V 的 electron,请勿在 npm config
配置 Electron 和 electron-builder 的镜像地址,否则命令指定的镜像地址将失效。可以通过 npm config list
检查。
ELECTRON_MIRROR=http://archive.spacemit.com/electron/ electron_use_remote_checksums=1 npm install
项目打包
以目录发布
npm run pack-dir
该命令会在输出目录(此处设为 build)下输出文件夹linux-riscv64-unpacked
。
bianbu@k1:~/electron-quick-start$ tree build/linux-riscv64-unpacked/ -L 1
build/linux-riscv64-unpacked/
├── chrome_100_percent.pak
├── chrome_200_percent.pak
├── chrome_crashpad_handler
├── chrome_sandbox
├── electron-quick-start
├── icudtl.dat
├── libEGL.so
├── libffmpeg.so
├── libGLESv2.so
├── libvk_swiftshader.so
├── libvulkan.so.1
├── LICENSE.electron.txt
├── LICENSES.chromium.html
├── locales
├── resources
├── resources.pak
├── snapshot_blob.bin
├── v8_context_snapshot.bin
└── vk_swiftshader_icd.json
3 directories, 17 files
以压缩包发布
npm run pack-tgz
该命令会在输出目录(此处设为 build)下输出压缩包 electron-quick-start-1.0.0-riscv64.tar.gz
。
bianbu@k1:~/electron-quick-start$ tar -ztf build/electron-quick-start-1.0.0-riscv64.tar.gz
electron-quick-start-1.0.0-riscv64/
electron-quick-start-1.0.0-riscv64/LICENSE.electron.txt
electron-quick-start-1.0.0-riscv64/LICENSES.chromium.html
electron-quick-start-1.0.0-riscv64/chrome_100_percent.pak
electron-quick-start-1.0.0-riscv64/chrome_200_percent.pak
electron-quick-start-1.0.0-riscv64/chrome_crashpad_handler
electron-quick-start-1.0.0-riscv64/chrome_sandbox
electron-quick-start-1.0.0-riscv64/electron-quick-start
electron-quick-start-1.0.0-riscv64/icudtl.dat
electron-quick-start-1.0.0-riscv64/libEGL.so
electron-quick-start-1.0.0-riscv64/libGLESv2.so
electron-quick-start-1.0.0-riscv64/libffmpeg.so
electron-quick-start-1.0.0-riscv64/libvk_swiftshader.so
electron-quick-start-1.0.0-riscv64/libvulkan.so.1
electron-quick-start-1.0.0-riscv64/locales/
electron-quick-start-1.0.0-riscv64/resources/
electron-quick-start-1.0.0-riscv64/resources.pak
electron-quick-start-1.0.0-riscv64/snapshot_blob.bin
electron-quick-start-1.0.0-riscv64/v8_context_snapshot.bin
electron-quick-start-1.0.0-riscv64/vk_swiftshader_icd.json
electron-quick-start-1.0.0-riscv64/locales/......
electron-quick-start-1.0.0-riscv64/resources/app-update.yml
electron-quick-start-1.0.0-riscv64/resources/app.asar
以deb发布
发布 .deb
包的压缩耗时较长,请耐心等待。
打包 .deb
要求设置 email 等信息,请在 package.json
中添加下列信息。
"author": "lff <junzhao.liang@spacemit.com>",
"email": "junzhao.liang@spacemit.com",
"homepage": "www.google.com",
安装 FPM。
sudo apt install ruby3.1
sudo gem install fpm
打包 .deb
,可相应修改命令参数。发布压缩包的压缩耗时较长,请耐心等待。
mkdir tmp
fpm -s dir --force -t deb -d libgtk-3-0 -d libnotify4 -d libnss3 -d libxss1 -d libxtst6 -d xdg-utils -d libatspi2.0-0 -d libuuid1 -d libsecret-1-0 --deb-recommends libappindicator3-1 \
--deb-compression xz \
--architecture riscv64 \
--description 'A minimal Electron application' \
--version 1.0.0 \
--package /home/bianbu/electron-quick-start/build/electron-quick-start_1.0.0_riscv64.deb \
--name electron-quick-start \
--maintainer 'lff <junzhao.liang@spacemit.com>' \
--url https://www.google.com \
--vendor 'lff <junzhao.liang@spacemit.com>' \
--deb-priority optional \
--license CC0-1.0 \
/home/bianbu/electron-quick-start/build/linux-riscv64-unpacked/=/opt/demo \
./tmp=/usr/share/applications/electron-quick-start.desktop
在 fpm
的打包命令中添加下列参数,可设置应用图标。
/home/bianbu/electron-quick-start/node_modules/@electron/app-builder-lib/templates/icons/electron-linux/16x16.png=/usr/share/icons/hicolor/16x16/apps/electron-quick-start.png
该命令会在输出目录(此处设为 build)下输出 .deb
包 electron-quick-start-1.0.0-riscv64.deb
。
运行应用
以目录发布
直接运行目录下的 electron-quick-start
。
cd build/linux-riscv64-unpacked/
./electron-quick-start
以压缩包发布
将压缩包解压,运行解压目录下的 electron-quick-start
。
cd build
tar -zxf electron-quick-start-1.0.0-riscv64.tar.gz
cd electron-quick-start-1.0.0-riscv64
./electron-quick-start
以deb包发布
安装 .deb
包,执行安装的应用。
cd build
sudo dpkg -i electron-quick-start_1.0.0_riscv64.deb
/opt/demo/electron-quick-start