1

我一直在尝试自行托管一个 TypeScript discord 机器人,但设置过程一直很混乱。我认为它应该创建一个包含文件的build目录index.js,但我不确定。我已经安装了 Visual Studio Build Tools 2017,因为它似乎需要它们,但运行npm install会出现此错误:

> sodium@3.0.2 preinstall C:\Users\fang2\Documents\Coding\Discord Bots\Myu-Bot-master\node_modules\sodium
> node install.js --preinstall

MS Version: 2017
C:\Users\fang2\Documents\Coding\Discord Bots\Myu-Bot-master\node_modules\sodium\install.js:312
    console.log('Invalid msvs_version ' + msvsVersion + '\n');
                                          ^

ReferenceError: msvsVersion is not defined
    at errorInvalidMSVSVersion (C:\Users\fang2\Documents\Coding\Discord Bots\Myu-Bot-master\node_modules\sodium\install.js:312:43)
    at checkMSVSVersion (C:\Users\fang2\Documents\Coding\Discord Bots\Myu-Bot-master\node_modules\sodium\install.js:329:9)
    at Object.<anonymous> (C:\Users\fang2\Documents\Coding\Discord Bots\Myu-Bot-master\node_modules\sodium\install.js:353:5)
    at Module._compile (node:internal/modules/cjs/loader:1092:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1121:10)
    at Module.load (node:internal/modules/cjs/loader:972:32)
    at Function.Module._load (node:internal/modules/cjs/loader:813:14)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:76:12)
    at node:internal/main/run_main_module:17:47
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! sodium@3.0.2 preinstall: `node install.js --preinstall`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the sodium@3.0.2 preinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\fang2\AppData\Roaming\npm-cache\_logs\2021-06-01T04_30_07_597Z-debug.log

我已经尝试了 2019 构建工具和 2017 构建工具,并尝试手动设置 msvs 版本,但似乎没有任何效果。任何帮助将不胜感激。

4

1 回答 1

1

我还试图让钠为 Discord 机器人工作,并花费了大量时间未能构建它。在撰写本文时,钠仅支持配置msvs_version20102012和。20132015

以下设法为我工作:

  1. 确保已安装2015 Visual Studio Build Tools。
  2. 安装Windows 8.1 SDK(看起来node-addon-api模块 sodium 依赖于这个)。Microsoft在此处维护其 SDK 的存档。或者,您可以从 2017 Build Tools 安装程序的 Visual C++ 构建工具部分的可选下拉菜单中安装它。这是用于澄清的菜单的屏幕截图。
  3. 在您的 Windows 环境变量中,添加VCTargetsPath并将其设置为C:\Program Files (x86)\MSBuild\Microsoft.cpp\v4.0\v140. 资源
  4. npm config set msvs_version 2015
  5. 现在,钠将在运行时构建,npm install sodium或者npm install如果已经列为项目的依赖项。

值得一提的东西:

第 3 步防止错误MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found.抛出和构建失败。从我的项目文件夹中,它可以追溯到node_modules\sodium\node-addon-api\nothing.vcxproj(20,3)

许多在线资源都建议安装windows-build-toolsnpm install --global --production windows-build-tools --vs2015使此构建成功,但截至 2020 年 2 月,Node.js 安装程序现在包括 Windows 构建工具作为选项。仅当您尚未安装 2015 构建工具时,这应该是相关的。

希望我能提供帮助。

于 2021-10-16T10:14:47.650 回答