错误:找不到模块'/node-v11-darwin-x64/node_sqlite3.node'

ERROR: Cannot find module '../node-v11-darwin-x64/node_sqlite3.node'

本文关键字:node sqlite3 node-v11-darwin-x64 错误 找不到 模块      更新时间:2023-09-26

我们的服务器上有Ghost博客平台的生产版本,内容和风格都发生了变化。我把博客的应用文件夹下载到了我的本地机器上。指示似乎直截了当。

快速启动:
  1. npm install -g grunt-cli
  2. npm install
  3. grunt init(如果要在生产模式下运行Ghost,则为grunt prod
  4. npm start

但当我运行grunt init时,我会得到以下内容:

Running "shell:bower" (shell) task
module.js:340
    throw err;
      ^
Error: Cannot find module 'q'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/Users/steelcollar/workspace/blog/node_modules/.bin/bower:6:9)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Warning: Command failed:
module.js:340
    throw err;
      ^
Error: Cannot find module 'q'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/Users/steelcollar/workspace/blog/node_modules/.bin/bower:6:9)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Use --force to continue.

最终,运行npm start导致:

ERROR: Cannot find module '../node_modules/sqlite3/lib/binding/node-v11-darwin-x64/node_sqlite3.node'

我安装了弓箭手和咕哝器。我根本没有更改代码。问题出在哪里?

更新:

根据我下载的文件夹结构,路径是../node-v11-linux-x64/node_sqlite3.node',而不是../node-v11-darwin-x64/node_sqlite3.node'

如果我将文件夹名称从darwin更改为linux,则会收到此错误,不过:

ERROR: dlopen(../node_modules/sqlite3/lib/binding/node-v11-darwin-x64/node_sqlite3.node, 1): no suitable image found.  Did find:
../node_modules/sqlite3/lib/binding/node-v11-darwin-x64/node_sqlite3.node: unknown file type, first eight bytes: 0x7F 0x45 0x4C 0x46 0x02 0x01 0x01 0x00

嗨,我也遇到过同样的情况,我就是这样解决的:

在本地计算机上,只需npm uninstall sqlite3npm install sqlite3 --save,现在应该可以正常工作了。

我不知道为什么会这样。但我认为这是因为每个操作系统所需的sqlite3版本不同,简单地将应用程序目录从服务器下载到本地计算机会导致不兼容问题,所以让npm决定安装哪个版本的sqlite3。

我得到了同样的错误。这不起作用:

yarn remove sqlite3 && yarn add sqlite3

然后我尝试了这个,它做到了:

npm uninstall sqlite3 && npm install sqlite3

对此的正确答案是运行npm rebuild。这将重建与当前项目相关的所有绑定,尤其是在更新之后。