错误:找不到模块'/node-v11-darwin-x64/node_sqlite3.node'
ERROR: Cannot find module '../node-v11-darwin-x64/node_sqlite3.node'
我们的服务器上有Ghost博客平台的生产版本,内容和风格都发生了变化。我把博客的应用文件夹下载到了我的本地机器上。指示似乎直截了当。
快速启动:npm install -g grunt-cli
npm install
grunt init
(如果要在生产模式下运行Ghost,则为grunt prod
)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 sqlite3
和npm install sqlite3 --save
,现在应该可以正常工作了。
我不知道为什么会这样。但我认为这是因为每个操作系统所需的sqlite3版本不同,简单地将应用程序目录从服务器下载到本地计算机会导致不兼容问题,所以让npm决定安装哪个版本的sqlite3。
我得到了同样的错误。这不起作用:
yarn remove sqlite3 && yarn add sqlite3
然后我尝试了这个,它做到了:
npm uninstall sqlite3 && npm install sqlite3
对此的正确答案是运行npm rebuild
。这将重建与当前项目相关的所有绑定,尤其是在更新之后。
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- 如何使用 node.js 比较两个 json 数组
- Node.js's Buffer.writeFloatBE in Javascript
- node.js:setInterval()正在跳过调用
- 如何处理node.js节点mongodb中的连接和查询队列
- Node.js正在更改应用程序以使用集群模块
- 如何使用Node.js最有效地解析网页
- 在openshift node js应用程序中获取请求
- Node.js and SQLite3
- 使用 SQLite3 + Node.js 的最佳实践
- node.js/sqlite3 SELECT 从命令行工作,但不能从 JS 绑定工作
- 使用node-sqlite3将变量绑定到SQL语句
- sqlite3 and node-js returns undefined
- Node-sqlite3异步回调
- 使用sqlite3和Node进行字符串插值
- node.js脚本和同步sqlite3调用
- sqlite3 callbacks (node.js)
- 变量在node.js的有效性与sqlite3
- Node.js中的sqlite3不会从INSERT回调中返回lastd
- Node.js sqlite3 -动态添加行时出错