0

因此,我编写了一个短节点模块(module1)作为可以通过命令行调用的二进制文件(.exe)的包装器。

这就是我获取二进制文件路径以使用 .exe 执行 .exe 的方式execFilePromised。它适用于我的模块1。

const __dirname = fs.realpathSync('.');
const mpqEditorLocation = path.resolve(__dirname, './mpq/MPQEditor.exe');

问题: 当我将 module1npm link ../<module1>导入另一个节点项目时,路径未正确设置为,.exe因为它位于我的node_modules文件夹中,而不是位于<otherproject>/mpq/MPQEditor.exe

如何使相__dirname对于实际文件而不是项目执行目录?

4

1 回答 1

0

所以我发现我的解决方案不要使用 npm link

改为使用npm install <absolute path to your package>

我刚刚打印了我的位置,pwd然后将其安装在那里。

这样我就可以将路径重构为:

const mpqEditorLocation = path.resolve(__dirname, '..', 'mpq', 'MPQEditor.exe');

从那时起工作:)

于 2020-02-06T19:37:28.760 回答