在 laravel-echo-server 中找不到模块“node-v46-linux-x64/node_sqlite3.node”错误

Posted

技术标签:

【中文标题】在 laravel-echo-server 中找不到模块“node-v46-linux-x64/node_sqlite3.node”错误【英文标题】:Cannot find module 'node-v46-linux-x64/node_sqlite3.node' error in laravel-echo-server 【发布时间】:2018-05-22 09:39:00 【问题描述】:

我必须在我的 laravel 项目中设置 laravel-echo-server。我已成功安装它,并且在我从终端运行时它运行良好。但是在从主管运行时,它会抛出错误

找不到模块'node-v46-linux-x64/node_sqlite3.node'

我几乎花了两天时间来解决这个问题。但我没有成功。因此,如果有人知道答案,将不胜感激。

这里是所有步骤/配置详细信息。

    安装节点 7.10.0 (https://github.com/nodejs/help/wiki/Installation) 全局安装 laravel-echo-server 并在我的项目中初始化

在这些步骤之后,如果我从终端运行“laravel-echo-server start”,它会完美运行。

现在我必须在主管中设置这个命令。所以我已经执行了这些步骤。

    创建 laravel-echo-server 的符号链接 (sudo ln -s /usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/bin/server.js /usr/bin/laravel-echo-server)

    在主管中设置“laravel-echo-server start”命令

    这里是主管的详细信息。

    文件位置:/etc/supervisor/conf.d/laravel.conf

    [program:laravel-echo-server]
    command=/usr/bin/laravel-echo-server start --dir=/var/www/html/laravel
    autostart=true
    autorestart=true
    stderr_logfile=/var/www/html/laravel/laravel-echo-server-err.log
    stdout_logfile=/var/www/html/laravel/laravel-echo-server-out.log
    

    运行sudo supervisorctl rereadsudo supervisorctl update

    运行sudo supervisorctl start laravel-echo-server

但它会引发错误。这是错误日志。

Error: Cannot find module '/usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/node_modules/sqlite3/lib/binding/node-v46-linux-x64/node_sqlite3.node'
    at Function.Module._resolveFilename (module.js:326:15)
    at Function.Module._load (module.js:277:25)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/node_modules/sqlite3/lib/sqlite3.js:4:15)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)
    at Module.require (module.js:354:17)
    at require (internal/module.js:12:17)
    at Object.<anonymous> (/usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/dist/database/sqlite.js:3:15)
    at Module._compile (module.js:410:26)
    at Object.Module._extensions..js (module.js:417:10)
    at Module.load (module.js:344:32)
    at Function.Module._load (module.js:301:12)

/usr/lib/nodejs/node-v7.10.0/lib/node_modules/laravel-echo-server/node_modules/sqlite3/lib/binding中有node-v51-linux-x64目录。

【问题讨论】:

试试npm install sqlite3 --build-from-source 或者只是将 v51 重命名为 v46 @SapneshNaik 重命名不起作用 @SapneshNaik 你能告诉我应该从哪里运行npm install sqlite3 --build-from-source 吗?仅供参考,laravel-echo-server 在安装 laravel-echo-server 时自行运行 sqlite3@3.1.13 install。见https://prnt.sc/hknskn 从你的 laravel 文件夹运行它 【参考方案1】:

我终于解决了这个问题。我已按照此步骤操作。

    Completly uninstall nodejs, npm and node Installing Node.js via package manager

我已在第 2 步中运行此命令。

    curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash - sudo apt-get install -y nodejs sudo apt-get install -y build-essential

然后我安装了 laravel-echo-server。一切对我来说都很好。但是如果你得到权限错误,你应该运行sudo chown -R $USER /usr/lib/node_modules。并运行 sudo ln -sfn ../lib/node_modules/laravel-echo-server/bin/server.js /usr/bin/laravel-echo-server 以防符号链接错误。

【讨论】:

以上是关于在 laravel-echo-server 中找不到模块“node-v46-linux-x64/node_sqlite3.node”错误的主要内容,如果未能解决你的问题,请参考以下文章

MinGW gcc 在 /local/include 中找不到头文件

Xcode Archive 在子项目中找不到头文件

脑洞题目 - 改自从一组无序数组中找不存在的最小正整数

maven-shade-plugin 错误:在“资源”的 org.apache.maven.plugins.shade.resource.ManifestResourceTransformer 中找不

laravel-echo-server 404 尝试进行身份验证时

Laravel-echo-server 码头化问题