前言:
tauri的开发依赖网络进行环境搭建,根据官网的步骤,安装好node、webview2、rust就行,相对比较简单;但是很多公司出于安全性要求,需要在内网进行开发,那么这个时候就比较麻烦了,需要搭建内网镜像进行安装。我这边踩了挺多坑,进行部分问题汇总和解决方案梳理
一、安装步骤
1、根据官网步骤,内网需要安装nodejs应用,然后内网开发基本的需要搭建公司自己的npm镜像,然后进行镜像配置
2、外网下载rustup-init.exe
应用,在内网进行安装时因为脱机无网,所以没办法安装成功,这时候需要配置rustup源进行内网安装;内网需要进行rustup源搭建,搭建好了之后需要配置windows的系统环境变量;需要配置如下截图所示的RUSTUP_DIST_SERVER、RUSTUP_UPDATE_ROOT两个环境变量,然后进行安装就行
3、rustup-init.exe
安装好了之后,在C盘的自己的用户文件夹里面会有.cargo文件夹,如:C:\Users\admin\.cargo
;在该文件夹中进行cargo源的配置,由于是内网脱机,所以也需要在公司内网搭建cargo镜像源(cargo源名称我这里是tuna,可根据你的喜好更改):
在~/.cargo/目录下,建一个config文件,windows下注意不要有扩展名
-
设置内容
[source.crates-io] replace-with = 'tuna' [source.tuna] registry = "http://crates-io.proxy.colasoft.com:8080/crates.io-index"
还需要在
C:Windows\system32\drivers\etc
文件夹的hosts文件中进行配置映射路径,配置内容如下示例(根据你内网实际镜像路径进行修改):10.16.17.156 crates-io.proxy.colasoft.com
二、开发编译阶段常见问题及解决方案
1、执行 yarn tauri dev
命令行报错 failed to select a version for requirement 'tauri = ^1.0.0.rc.4'
;报错原因其实就是cargo镜像源对应的仓库包版本不匹配,如果1.0.0.rc.4
版本不行,改为1.0.0.rc.0
就行;
报错示例如下(版本号做报错场景使用,请忽略):
修改配置文件路径是src-tauri
文件夹下的cargo.toml
文件,图片示例 如下:
2、报错linking with 'link.exe' failed
的问题,一般来说是visual studio没有安装或者安装不全的问题,进行vs2019版本的重新安装,一般就能解决问题:
3、内网离线开发环境yarn tauri build打包报错:
yarn run v1.22.11
$ tauri build --verbose
app:spawn Running "C:\Repos\ice-poc\tauri\node_modules\@tauri-apps\cli\bin\tauri-cli.exe tauri build --verbose" +0ms
warning: unused manifest key: source
Compiling app v0.1.0 (C:\Repos\ice-poc\tauri\src-tauri)
Finished release [optimized] target(s) in 56.71s
info: Verifying wix package
info: Downloading https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip
info: validating hash
Error: failed to bundle project
Caused by:
hash mismatch of downloaded file
app:spawn Command "C:\Repos\ice-poc\tauri\node_modules\@tauri-apps\cli\bin\tauri-cli.exe" failed with exit code: 1 +1ms
error Command failed with exit code 1.
解决方法:需要将文件https://github.com/wixtoolset/wix3/releases/download/wix3112rtm/wix311-binaries.zip下载放在内网环境中,然后解压文件到C:\Users\[用户名]\AppData\Local\tauri\WixTools
文件夹中。