node.js - 安装 sqlite3 时 node-pre-gyp 出错
问题描述
在工作中,我们有一个网站 (WIP),它获取 SQLite 数据库的一些数据。由于网站使用 Javascript 作为后端,我们尝试在我们非正式托管网站的服务器上安装 sqlite3 以进行演示。
它使用具有 2 GB RAM 的 Windows 7(32 位)。Node 和 NPM 都已安装,唯一的问题是当我们尝试“npm install sqlite3”时。该部分运行没有错误,但是当“node-pre-gyp install --fallback-to-build”被执行时,它会导致这个错误:
2778 warn system32@1.0.0 No description
2779 warn system32@1.0.0 No repository field.
2780 verbose stack Error: sqlite3@4.1.0 install: `node-pre-gyp install --fallback-to-build`
2780 verbose stack Exit status 1
2780 verbose stack at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:301:16)
2780 verbose stack at EventEmitter.emit (events.js:198:13)
2780 verbose stack at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
2780 verbose stack at ChildProcess.emit (events.js:198:13)
2780 verbose stack at maybeClose (internal/child_process.js:982:16)
2780 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:259:5)
2781 verbose pkgid sqlite3@4.1.0
2782 verbose cwd C:\Windows\system32
2783 verbose Windows_NT 6.1.7601
2784 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "sqlite3"
2785 verbose node v10.16.3
2786 verbose npm v6.9.0
2787 error code ELIFECYCLE
2788 error errno 1
2789 error sqlite3@4.1.0 install: `node-pre-gyp install --fallback-to-build`
2789 error Exit status 1
2790 error Failed at the sqlite3@4.1.0 install script.
2790 error This is probably not a problem with npm. There is likely additional logging output above.
2791 verbose exit [ 1, true ]
我已经更新了 node、npm、全局安装的 node-gyp、更新了 windows、安装了 Python 2.7,但这并没有帮助。当前版本是:
Node: v10.16.3
NPM: v6.9.0
解决方案
这是一个常见问题,当您更改节点版本而不重建 npm 包时会发生这种情况
进行以下步骤
npm install --global --production windows-build-tools
使用提升的 PowerShell 或 CMD.exe(以管理员身份运行)使用 Microsoft 的 windows-build-tools 安装所有必需的工具和配置。参考npm install -g node-gyp
或者npm rebuild node-gyp
如果你已经有了npm install sqlite3
推荐阅读
- sharepoint - 如何在 Sharepoint 文件搜索中忽略 OneDrive 文件?
- kubernetes - kubernetes pod 无法解析本地主机名,但可以解析外部主机名,例如 google.com
- python - imblearn 管道内的 dtype 转换
- javascript - 我可以按字段在数组中添加或编辑对象吗
- go - 中间件中的 gorilla/mux 下一个处理程序是 nil
- xcode - 使用 L2CAP 通道 XCODE 发送 BLE 数据包
- java - 为什么我的数组未显示为已过滤?
- macos - 在 Mac 上删除空文件夹
- mysql - MySQL 在 select 中使用 OR 来定位列中的联系人
- java - JNA中字节数组中的垃圾值