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尚未适配riscv,直接安装会导致错误,因此我们从unofficial-builds中下载已适配riscv的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和相关组件未完全适配RISCV平台,因此需要使用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适配RISCV的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/
安装依赖
这里通过镜像地址指定使用适配RISCV的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",