我有一个节点脚本,在同一个项目文件夹中完美运行,比如说使用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”
任何将不胜感激,谢谢
1条答案
按热度按时间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
。