【问题标题】:Error installing sqlite3 in node.js在 node.js 中安装 sqlite3 时出错
【发布时间】:2017-03-20 13:49:07
【问题描述】:

我在 node.js 中安装包时遇到问题。我的 npm 版本是 2.14.3,我需要安装 sqlite3 包。 在我的项目路径中,我使用了这个命令:“npm install sqlite3 --save”我有下一个错误:

npm WARN package.json node-sqlite@1.0.1 没有描述 npm WARN package.json node-sqlite@1.0.1 没有存储库字段。 npm 警告 package.json node-sqlite@1.0.1 没有 README 数据 npm WARN package.json node-sqlite@1.0.1 没有许可字段。 /

sqlite3@3.1.8 安装 /home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3 node-pre-gyp install --fallback-to-build node-pre-gyp ERR!尝试下载(403): https://mapbox-node-binary.s3.amazonaws.com/sqlite3/v3.1.8/node-v46-linux-arm.tar.gz node-pre-gyp 错误!未找到 sqlite3@3.1.8 和的预构建二进制文件 node@4.1.0 (node-v46 ABI) (回退到源代码编译 node-gyp) make: 进入目录 '/home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3/build' 行动 deps_sqlite3_gyp_action_before_build_target_unpack_sqlite_dep 发布/obj/gen/sqlite-autoconf-3150000/sqlite3.c TOUCH 发布/obj.target/deps/action_before_build.stamp CC(target) 发布/obj.target/sqlite3/gen/sqlite-autoconf-3150000/sqlite3.o 发布/obj/gen/sqlite-autoconf-3150000/sqlite3.c:199451:1:致命 错误:打开依赖文件 ./Release/.deps/Release/obj.target/sqlite3/gen/sqlite-autoconf-3150000/sqlite3.o.d.raw: 没有此类文件或目录编译终止。 deps/sqlite3.target.mk:120:目标配方 '发布/obj.target/sqlite3/gen/sqlite-autoconf-3150000/sqlite3.o' 制作失败:*** [发布/obj.target/sqlite3/gen/sqlite-autoconf-3150000/sqlite3.o] 错误 1 ​​make:离开目录 '/home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3/build' gyp 呃!构建错误 gyp ERR!堆栈错误:make 失败,退出代码: 2 吉普 错误! ChildProcess.onExit 处的堆栈 (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:270:23) 吉普错误!堆栈在 emitTwo (events.js:87:13) gyp ERR!堆栈在 ChildProcess.emit (events.js:172:7) 错误错误!堆栈在 Process.ChildProcess._handle.onexit (internal/child_process.js:200:12) 吉普错误!系统 Linux 4.4.21-v7+ gyp ERR!命令 “/usr/local/bin/节点” “/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js” “构建” “--fallback-to-build” “--module=/home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3/lib/binding/node-v46-linux-arm/node_sqlite3.node” “--module_name=node_sqlite3” “--module_path=/home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3/lib/binding/node-v46-linux-arm” 吉普错误! cwd /home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3 吉普错误!节点 -v v4.1.0 gyp 错误!节点-gyp -v v3.0.3 gyp 错误!不好 节点预gyp错误!构建错误节点-pre-gyp ERR!堆栈错误:失败 执行'/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js 构建 --fallback-to-build --module=/home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3/lib/binding/node-v46-linux-arm/node_sqlite3.node --module_name=node_sqlite3 --module_path=/home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3/lib/binding/node-v46-linux-arm' (1) node-pre-gyp ERR! ChildProcess 的堆栈。 (/home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3/node_modules/node-pre-gyp/lib/util/compile.js:83:29) 节点预gyp错误!堆栈在 emitTwo (events.js:87:13) 节点预gyp 呃! ChildProcess.emit (events.js:172:7) node-pre-gyp 的堆栈 呃!堆栈在可能关闭(内部/child_process.js:817:16) 节点预gyp错误! Process.ChildProcess._handle.onexit 处的堆栈 (internal/child_process.js:211:5) node-pre-gyp ERR!系统 Linux 4.4.21-v7+ node-pre-gyp 错误!命令“/usr/local/bin/node”“/home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3/node_modules/.bin/node-pre-gyp” “安装”“--fallback-to-build”节点预gyp错误! cwd /home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3 node-pre-gyp 呃! node -v v4.1.0 node-pre-gyp 错误!节点预gyp -v v0.6.31 节点预gyp错误!不行 无法执行 '/usr/local/bin/node /usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js 构建 --fallback-to-build --module=/home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3/lib/binding/node-v46-linux-arm/node_sqlite3.node --module_name=node_sqlite3 --module_path=/home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3/lib/binding/node-v46-linux-arm' (1) npm 错误! Linux 4.4.21-v7+ npm 错误! argv "/usr/local/bin/node" “/usr/local/bin/npm” “安装” “sqlite3” “--save” npm 错误!节点 v4.1.0 npm 错误! npm v2.14.3 npm 错误!代码 ELIFECYCLE npm 错误! sqlite3@3.1.8 安装:node-pre-gyp install --fallback-to-build npm 错误!出口 状态 1 npm 错误! npm 错误!在 sqlite3@3.1.8 安装脚本失败 'node-pre-gyp install --fallback-to-build'。 npm 错误!这是最 可能是 sqlite3 包的问题,​​npm ERR!不使用 npm 本身。 npm 错误!告诉作者这在您的系统上失败:npm 呃! node-pre-gyp install --fallback-to-build npm ERR!你可以得到 他们的信息来自:npm ERR! npm 所有者 ls sqlite3 npm 错误!有 上面可能有额外的日志输出。 npm 错误!请包括 带有任何支持请求的以下文件:npm ERR!
/home/pi/Desktop/node-sqlite_Sockets/npm-debug.log

如果我尝试执行我的 node.js 程序,我会遇到下一个错误:

module.js:338 抛出错误; ^ 错误:找不到模块 '/home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3/lib/binding/node-v46-linux-arm/node_sqlite3.node' 在 Function.Module._resolveFilename (module.js:336:15) 在 Module.require 处的 Function.Module._load (module.js:286:25) (module.js:365:17) 在对象处需要 (module.js:384:17)。 (/home/pi/Desktop/node-sqlite_Sockets/node_modules/sqlite3/lib/sqlite3.js:4:15) 在 Module._compile (module.js:434:26) 在 Object.Module._extensions..js (module.js:452:10) 在 Module.load (module.js:355:32) 在 Module.require 处的 Function.Module._load (module.js:310:12) (module.js:365:17)

更新后(npm install -g npm)

npm WARN checkPermissions 缺少对 /usr/local/lib/node_modules/npm npm WARN checkPermissions 缺少对 /usr/local/lib/node_modules /usr/local/lib └── npm@3.10.9 npm 错误! Linux 4.4.21-v7+ npm 错误! argv "/usr/local/bin/node" "/usr/local/bin/npm" "安装" “-g” “npm” npm 错误!节点 v4.1.0 npm 错误! npm v3.10.9 npm 错误!小路 /usr/local/lib/node_modules/npm npm 错误!代码 EACCES npm 错误!错误号 -13 npm 错误!系统调用访问 npm 错误!错误:EACCES:权限被拒绝,访问 '/usr/local/lib/node_modules/npm' npm 错误!在错误(本机)npm 呃! { [错误:EACCES:权限被拒绝,访问 '/usr/local/lib/node_modules/npm'] npm 错误!错误号:-13,npm 错误!
代码:'EACCES',npm 错误!系统调用:'访问',npm ERR!小路: '/usr/local/lib/node_modules/npm' } npm 错误! npm 错误!请尝试 再次以 root/管理员身份运行此命令。 npm 错误!请 在任何支持请求中包含以下文件:npm ERR!
/home/pi/Desktop/node-sqlite_Sockets/npm-debug.log

有人知道怎么解决吗? 提前致谢!

最好的问候。

【问题讨论】:

  • 检查 sqlite3 是否支持您当前的 nodejs 版本。这是我的问题

标签: node.js


【解决方案1】:

您之前是否在其他应用上安装过 sqlite3?因为您的缓存文件可能已损坏。尝试使用 npm cache clean sqlite3 将其从缓存中删除或使用 npm cache clean 清理整个缓存并再次运行安装脚本。

编辑:在您编辑问题之后。这似乎是一个权限错误。尝试使用 sudo npm install -g npm 运行 npm 更新

总结:这是旧 npm 版本的问题。更新到新版本通过运行sudo npm install -g npm 解决了这个问题。

【讨论】:

  • Chresse 感谢您回复我 :) 我已经按照你说的做了,但我有同样的错误:S 你还能想到别的吗?
  • @Tecnico:你成功安装了其他 npm 包了吗?否则,请尝试使用 npm install -g npm 更新您的 npm
  • 我不能。我有错误。我更新了我的问题,你可以看到。
  • @Tecnico:在您编辑后,它似乎是权限错误。使用 sudo 运行更新命令:sudo npm install -g npm
  • 解决! :) 非常感谢!!
【解决方案2】:

这对我有用:

  • 首先,我安装了 Visual C++ 2013,然后通过运行全局配置 npm config set msvs_version 2013 --global

  • 然后我通过运行 npm install node-gyp -g node-gyp 来安装 node-gyp

  • 最后,我通过运行npm install sqlite3安装了Sqlite3

希望这对某人有所帮助

【讨论】:

    【解决方案3】:

    不同 stackoverflow 线程中的答案都对我有用。

    删除了缓存删除了锁文件,安装了另一个版本的Node,更新了NPM,等,但他们都没有工作。也许我的回答是题外话,但如果你只是想立即完成工作,你可以使用另一个工具,如 yarn 来安装你想要的包:

    yarn add <package>
    

    等价于

    npm i --save <package>
    

    例如,SQLite3Sequelize 无法使用 NPM 安装在我的计算机上,我可以使用 Yarn。

    【讨论】:

      【解决方案4】:

      这在 Windows 10 上对我有用。

      npm uninstall sqlite3
      npm cache clean
      npm install sqlite3
      

      【讨论】:

      • 谢谢,我试图在 Visual Studio Code 终端上安装它,这个解决方案对我有用。
      【解决方案5】:

      这对我有用:

      • 以前的应用目录是/My Files/TestApp,它总是抛出这个错误。
      • 根据https://github.com/mapbox/node-sqlite3/issues/1538的建议,我将目录移到了另一个路径中没有空格的目录(/FolderNameWithoutSpaces/TestApp
      • 而且成功了

      macOS 蒙特雷 v12.1 节点版本:v17.3.1 npm 版本:v8.3.0

      这可能不是上述问题的确切答案,但对某些人来说,它会起作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-17
        • 2014-07-10
        • 2013-08-23
        • 1970-01-01
        • 2013-08-26
        • 2013-09-01
        相关资源
        最近更新 更多