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

时间:2014-10-15 06:49:06

标签: javascript node.js sqlite ghost-blog

我们的服务器上有一个Ghost博客平台的生产版本,其中包含内容和样式更改。我将博客的app文件夹下载到我的本地计算机上。说明书似乎很简单。

快速开始:
  1. npm install -g grunt-cli
  2. npm install
  3. grunt init(如果您想在生产模式下运行Ghost,则grunt prod
  4. npm start
  5. 但是当我运行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
    

3 个答案:

答案 0 :(得分:4)

您好我有相同的情况,这就是我解决它的方式:

在本地计算机上,只需npm uninstall sqlite3npm install sqlite3 --save,它就可以正常运行。

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

答案 1 :(得分:0)

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

yarn remove sqlite3 && yarn add sqlite3

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

npm uninstall sqlite3 && npm install sqlite3

答案 2 :(得分:0)

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