提问人:Rehamjf 提问时间:11/13/2023 最后编辑:Rehamjf 更新时间:11/14/2023 访问量:34
以 cmd 身份运行软链接节点脚本。 找不到已安装的模块
Running soft linked node script as cmd. can't find installed modules
问:
我有一个在同一个项目文件夹中完美运行的节点脚本,比如说使用puppeteer库的start.js,它运行完美,如下所示: 节点启动 .js
我正在尝试做的是链接此命令以在服务器内的任何位置使用它
chmod +x /var/www/wc-service/spa/start.js && ln -s /var/www/wc-service/spa/bin/start.js /usr/bin/mycommand
但是从bash运行新命令时,我收到了此错误 错误:无法从 node_modules/puppeteer-core/lib/cjs/puppeteer/node/BrowserFetcher.js:36:20) 中找到模块“fs/promises”
笔记
节点:v21.1.0 Debian GNU/Linux 11 npm 版本:10.2.3
节点已更新,默认情况下
具有“fs/promises”,任何将不胜感激,谢谢
答:
鉴于您运行的是 v21.x,我假设您编译并安装了自己的节点。 是一个相对较新的添加,如果您内置到路径中(我认为这是默认的),它将解释您的所有症状。require('fs/promises')
node
/usr/local
运行将使用 at 的可执行文件,并且很好,因为它在版本 21.x 上;而添加 shebang 会失败,因为它位于不支持调用的 Debian 存储库的旧版本上。node start.js
/usr/local/bin/node
/usr/bin/node
require('fs/promises')
您可以通过在终端中运行来验证这一点,以检查您正在运行的可执行文件所在的位置。which node
node start.js
另外,符号链接没有理由导致失败,我想你只要尝试运行就会得到同样的结果。./start.js
上一个:Awk 未正确筛选日期 [重复]
评论
node start.js
start.js