linux 正在以cmd身份运行软链接节点脚本,找不到已安装的模块

5w9g7ksd  于 2023-11-17  发布在  Linux
关注(0)|答案(1)|浏览(113)

我有一个节点脚本,在同一个项目文件夹中完美运行,比如说使用puppeteer库的start.js,它运行得很完美,如下所示:
我尝试做的是链接这个命令,以便在服务器内的任何地方使用它
第一个月
但是当从bash运行新命令时,我得到了这个错误:Cannot find module 'fs/promises' from inside node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserFetcher.js:36:20)
注意到
node:v21.1.0 Debian GNU/Linux 11 npm:10.2.3
节点已更新,默认情况下具有“fs/promises”
任何将不胜感激,谢谢

t0ybt7op

t0ybt7op1#

假设你正在运行v21.x,我假设你编译并安装了自己的节点。require('fs/promises')是一个相对较新的添加,如果你将node构建到/usr/local路径(我认为这是默认的),它将解释你的所有症状。
运行node start.js将使用/usr/local/bin/node上的可执行文件,因为它是在21.x版本上,所以没有问题;而添加/usr/bin/node shebang将失败,因为它是在Debian repo的旧版本上,不支持require('fs/promises')调用。
您可以通过在终端中运行which node来验证这一点,以检查使用node start.js运行的可执行文件的位置。
此外,符号链接没有理由会导致失败,我想你会得到相同的结果,只是试图运行./start.js

相关问题