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

在我们的服务器上有一个生产版本的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'

我有凉亭和咕噜安装。 我根本没有改变代码。 问题在哪里?

更新:

根据我下载的文件夹结构,path是../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