安装 sqlite3 时 node-pre-gyp 出错

Posted

技术标签:

【中文标题】安装 sqlite3 时 node-pre-gyp 出错【英文标题】:Error with node-pre-gyp when installing sqlite3 【发布时间】:2020-01-24 04:37:40 【问题描述】:

在工作中,我们有一个网站 (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

【问题讨论】:

你需要安装构建工具 【参考方案1】:

这是一个常见问题,当您更改节点版本而不重建 npm 包时会发生这种情况

进行以下步骤

    使用 Microsoft 的 windows-build-tools 从提升的 PowerShell 或 CMD.exe(以管理员身份运行)使用 npm install --global --production windows-build-tools 安装所有必需的工具和配置。 reference npm install -g node-gypnpm rebuild node-gyp 如果你已经拥有它 npm install sqlite3

【讨论】:

会不会是Proxy造成的?通常我们为我们配置Node。因为在某一时刻它说“gyp ERR!堆栈错误:连接 ETIMEDOUT 104.20.23.46:443” 根据here 应该安装一个旧的sdk 以节省时间。您的解决方案看起来像是一个完全臃肿的当前 Windows 环境。 这适用于我的旧 Win10 系统。这在我全新的 Ubuntu 20.04 上不起作用...... ubuntu 有什么解决方案吗? 安装nodejs构建工具,然后npm重建包

以上是关于安装 sqlite3 时 node-pre-gyp 出错的主要内容,如果未能解决你的问题,请参考以下文章

linux中 nodejs 安装 sqlite3 出现的问题

node-pre-gyp install --fallback-to-build 错误

使用 Yarn 1 编译画布时出现“node-pre-gyp:未找到”

安装 canvasnode-sass 报错或者警告 node-pre-gyp WARN

node-pre-gyp:heroku push 中的权限被拒绝

node-pre-gyp:heroku push 中的权限被拒绝