要看解决办法的,直接把文章滚动到最后就行了,很简单。
最近要做个 IM,PC 端选择用 electron,跨端的最佳选择了。桌面端项目,肯定少不了本地数据库,本来想用 sql.js,看了下需要手动拼接 SQL 语句,小型项目可以玩玩,项目大了就有点难受了。
原先的 Nodejs 项目只要是涉及到数据库的,都是用 sequelize,Nodejs 端 ORM 框架首推。由于之前写 Java 代码的,Hibiernate、MyBatis、iBatis 都很熟练了,这个用起来还比较得心应手。
关键是不用手写 SQL。
一、折腾过程
先在 sequelize 看了下支持 sqlite3,然后就开始 install 了。
$ npm install sequelize sqlite3 --save
# or
$ yarn add sequelize sqlite3 --save
安装过程还好,就是时间稍微有点长,然后在项目中增加了 sequelize 的验证代码,尝试启动看下效果,起不来了,错误消息中有这么一行。
Error: Please install sqlite3 package manually
以为是要安装 sqlite3 服务,去官网看了下,确实有个服务可以安装。之前数据库 mysql、oracle、sql server 这些需要跑起来,不都是本地安装个服务么。
仔细想想,不对,我这个客户端项目,将来是要给用户使用的,不能说让用户都安装个 sqlite 吧。
于是网上找找解决办法吧,找到了一篇,这哥们折腾了4天,有兴趣的可以看看。
ElectronJs: please install sqlite3 package manually
我按照这位大哥的指导,走到 Step9 的时候,卡住了。错误如下截图,意思就是我缺少 C++ 环境,提示让我安装 Visual Studio。
好,于是去官网下载,安装,最新版 2019 可以了吧。
没想到,Visual Studio 2019是自定义安装,默认就安装一个核心,需要做什么开发就选择安装对应的依赖,没搞过这个,真不知道怎么选。全选是不可能的,太大了,几十个 GB。
那就尝试吧。
桌面、Web、http://Asp.net 挨个试,还好网速快,不然安装就是个半天。但是,始终就是编译不过,错误一如既往的显示上图。
我都想放弃了,手写 sql 算了,想想又不能放弃啊,搞了两天,一行代码还没写呢。
于是,决定再试半天吧,终于找到了。
二、解决办法
项目中需要增加 sequelize 和 sqlite3 的依赖和上面的折腾一样,install 就行了。
Step 1:管理员权限启动 cmd 或者 power shell,执行
$ npm install --vs2015 -g windows-build-tools
安装过程有点慢,请耐心等候。
Step 2:项目中添加 electron-rebuild 依赖
$ npm install electron-rebuild --save-dev
Step 3:项目 package.json 中 scripts 添加 rebuild
"scripts": {"start": "electron .","rebuild": "electron-rebuild -f -w sqlite3"}
Step 4:执行
$ npm run rebuild
如果都提示正确,就搞定了,后面就是写个数据库验证的代码,通过后就开始写 CRUD 的代码了。
PS:搞 Nodejs 开发,最好是提前安装好 Python环境,并且保证命令行可以成功执行 Python命令,最新版的 3 就可以,现在 Nodejs 的包都很多依赖着 Python 和 C++。