I am trying to program a Discord Bot that plays music from Youtube. I chose Sodium as the encryption package, but I'm having difficulties when it comes to installing it.
I tried setting my VS version to 2015 by installing the required build tools and setting the version from the npm config, with no avail:
npm install --global --production --vs2015 --add-python-to-path windows-build-tools
npm config set msvs_version 2015 --global
Here is my installation log:
0 verbose cli [
0 verbose cli 'C:\\Program Files\\nodejs\\node.exe',
0 verbose cli 'C:\\Users\\user\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js',
0 verbose cli 'install',
0 verbose cli 'sodium'
0 verbose cli ]
1 info using [email protected]
2 info using [email protected]
3 timing npm:load:whichnode Completed in 0ms
4 timing config:load:defaults Completed in 2ms
5 timing config:load:file:C:\Users\user\AppData\Roaming\npm\node_modules\npm\npmrc Completed in 2ms
6 timing config:load:builtin Completed in 2ms
7 timing config:load:cli Completed in 2ms
8 timing config:load:env Completed in 0ms
9 timing config:load:file:C:\Users\user\Desktop\all\DiscordBot\.npmrc Completed in 0ms
10 timing config:load:project Completed in 2ms
11 timing config:load:file:C:\Users\user\.npmrc Completed in 0ms
12 timing config:load:user Completed in 1ms
13 timing config:load:file:C:\Users\user\AppData\Roaming\npm\etc\npmrc Completed in 0ms
14 timing config:load:global Completed in 1ms
15 timing config:load:validate Completed in 1ms
16 timing config:load:credentials Completed in 0ms
17 timing config:load:setEnvs Completed in 1ms
18 timing config:load Completed in 12ms
19 timing npm:load:configload Completed in 12ms
20 timing npm:load:setTitle Completed in 1ms
21 timing npm:load:setupLog Completed in 0ms
22 timing config:load:flatten Completed in 4ms
23 timing npm:load:cleanupLog Completed in 3ms
24 timing npm:load:configScope Completed in 0ms
25 timing npm:load:projectScope Completed in 1ms
26 timing npm:load Completed in 22ms
27 timing arborist:ctor Completed in 1ms
28 timing idealTree:init Completed in 111ms
29 timing idealTree:userRequests Completed in 3ms
30 silly idealTree buildDeps
31 silly fetch manifest sodium@*
32 verbose shrinkwrap failed to load node_modules/.package-lock.json out of date, updated: node_modules
33 http fetch GET 200 https://registry.npmjs.org/sodium 119ms (cache hit)
34 silly placeDep ROOT [email protected] OK for: [email protected] want: *
35 timing idealTree:#root Completed in 127ms
36 timing idealTree:node_modules/sodium Completed in 0ms
37 timing idealTree:buildDeps Completed in 128ms
38 timing idealTree:fixDepFlags Completed in 3ms
39 timing idealTree Completed in 247ms
40 timing reify:loadTrees Completed in 248ms
41 timing reify:diffTrees Completed in 8ms
42 silly reify moves {}
43 timing reify:retireShallow Completed in 0ms
44 timing reify:createSparse Completed in 3ms
45 timing reify:loadBundles Completed in 0ms
46 silly audit bulk request {
46 silly audit '@derhuerst/http-basic': [ '8.2.1' ],
46 silly audit '@discordjs/builders': [ '0.5.0' ],
46 silly audit '@discordjs/collection': [ '0.2.1' ],
46 silly audit '@discordjs/form-data': [ '3.0.1' ],
46 silly audit '@discordjs/node-pre-gyp': [ '0.4.1' ],
46 silly audit '@discordjs/opus': [ '0.6.0', '0.5.3' ],
46 silly audit '@discordjs/voice': [ '0.6.0' ],
46 silly audit 'node-addon-api': [ '3.2.1', '4.1.0' ],
46 silly audit 'prism-media': [ '1.3.2' ],
46 silly audit '@sapphire/async-queue': [ '1.1.4' ],
46 silly audit '@sindresorhus/is': [ '4.0.1' ],
46 silly audit '@types/node': [ '16.7.4', '10.17.60' ],
46 silly audit '@types/ws': [ '7.4.7' ],
46 silly audit abbrev: [ '1.1.1' ],
46 silly audit 'agent-base': [ '6.0.2' ],
46 silly audit 'ansi-regex': [ '3.0.0', '2.1.1' ],
46 silly audit aproba: [ '2.0.0' ],
46 silly audit 'are-we-there-yet': [ '1.1.5' ],
46 silly audit 'async.parallellimit': [ '0.5.2' ],
46 silly audit 'async.util.eachoflimit': [ '0.5.2' ],
46 silly audit 'async.util.isarray': [ '0.5.2' ],
46 silly audit 'async.util.isarraylike': [ '0.5.2' ],
46 silly audit 'async.util.keyiterator': [ '0.5.2' ],
46 silly audit 'async.util.keys': [ '0.5.2' ],
46 silly audit 'async.util.noop': [ '0.5.2' ],
46 silly audit 'async.util.once': [ '0.5.2' ],
46 silly audit 'async.util.onlyonce': [ '0.5.2' ],
46 silly audit 'async.util.parallel': [ '0.5.2' ],
46 silly audit 'async.util.restparam': [ '0.5.2' ],
46 silly audit asynckit: [ '0.4.0' ],
46 silly audit 'balanced-match': [ '1.0.2' ],
46 silly audit boolbase: [ '1.0.0' ],
46 silly audit boolstring: [ '1.0.2' ],
46 silly audit 'brace-expansion': [ '1.1.11' ],
46 silly audit 'buffer-from': [ '1.1.2' ],
46 silly audit callsites: [ '3.1.0' ],
46 silly audit caseless: [ '0.12.0' ],
46 silly audit cheerio: [ '1.0.0-rc.10' ],
46 silly audit 'cheerio-select': [ '1.5.0' ],
46 silly audit chownr: [ '2.0.0' ],
46 silly audit 'cli-color': [ '1.2.0' ],
46 silly audit 'color-support': [ '1.1.3' ],
46 silly audit 'combined-stream': [ '1.0.8' ],
46 silly audit 'concat-map': [ '0.0.1' ],
46 silly audit 'concat-stream': [ '1.6.2' ],
46 silly audit 'console-control-strings': [ '1.1.0' ],
46 silly audit 'core-util-is': [ '1.0.2' ],
46 silly audit 'css-select': [ '4.1.3' ],
46 silly audit 'css-what': [ '5.0.1' ],
46 silly audit d: [ '1.0.1' ],
46 silly audit dasu: [ '0.4.2' ],
46 silly audit debug: [ '4.3.2' ],
46 silly audit 'delayed-stream': [ '1.0.0' ],
46 silly audit delegates: [ '1.0.0' ],
46 silly audit 'detect-libc': [ '1.0.3' ],
46 silly audit 'discord-api-types': [ '0.22.0' ],
46 silly audit 'discord.js': [ '13.1.0' ],
46 silly audit 'dom-serializer': [ '1.3.2' ],
46 silly audit domelementtype: [ '2.2.0' ],
46 silly audit domhandler: [ '4.2.0' ],
46 silly audit domutils: [ '2.8.0' ],
46 silly audit 'dot-prop': [ '6.0.1' ],
46 silly audit dotenv: [ '10.0.0' ],
46 silly audit entities: [ '2.2.0' ],
46 silly audit 'env-paths': [ '2.2.1' ],
46 silly audit 'es5-ext': [ '0.10.53' ],
46 silly audit 'es6-iterator': [ '2.0.3' ],
46 silly audit 'es6-symbol': [ '3.1.3' ],
46 silly audit 'es6-weak-map': [ '2.0.3' ],
46 silly audit 'event-emitter': [ '0.3.5' ],
46 silly audit ext: [ '1.5.0' ],
46 silly audit type: [ '2.5.0', '1.2.0' ],
46 silly audit 'ffmpeg-static': [ '4.4.0' ],
46 silly audit 'fs-minipass': [ '2.1.0' ],
46 silly audit 'fs.realpath': [ '1.0.0' ],
46 silly audit gauge: [ '3.0.1' ],
46 silly audit glob: [ '7.1.7' ],
46 silly audit 'has-unicode': [ '2.0.1' ],
46 silly audit htmlparser2: [ '6.1.0' ],
46 silly audit 'http-response-object': [ '3.0.2' ],
46 silly audit 'https-proxy-agent': [ '5.0.0' ],
46 silly audit 'human-time': [ '0.0.2' ],
46 silly audit inflight: [ '1.0.6' ],
46 silly audit inherits: [ '2.0.4' ],
46 silly audit 'is-fullwidth-code-point': [ '2.0.0' ],
46 silly audit 'is-obj': [ '2.0.0' ],
46 silly audit 'is-promise': [ '2.2.2' ],
46 silly audit isarray: [ '1.0.0' ],
46 silly audit 'jsonpath-plus': [ '5.0.7' ],
46 silly audit keypress: [ '0.2.1' ],
46 silly audit 'lodash.isequal': [ '4.5.0' ],
46 silly audit 'lru-cache': [ '6.0.0' ],
46 silly audit 'lru-queue': [ '0.1.0' ],
46 silly audit m3u8stream: [ '0.8.4' ],
46 silly audit 'make-dir': [ '3.1.0' ],
46 silly audit semver: [ '6.3.0', '7.3.5' ],
46 silly audit memoizee: [ '0.4.15' ],
46 silly audit 'next-tick': [ '1.1.0', '1.0.0' ],
46 silly audit 'mime-db': [ '1.49.0' ],
46 silly audit 'mime-types': [ '2.1.32' ],
46 silly audit miniget: [ '4.2.1' ],
46 silly audit minimatch: [ '3.0.4' ],
46 silly audit minimist: [ '1.2.5' ],
46 silly audit minipass: [ '3.1.3' ],
46 silly audit minizlib: [ '2.1.2' ],
46 silly audit mkdirp: [ '1.0.4' ],
46 silly audit ms: [ '2.1.2' ],
46 silly audit node: [ '16.6.1' ],
46 silly audit 'node-bin-setup': [ '1.0.6' ],
46 silly audit 'node-fetch': [ '2.6.1' ],
46 silly audit 'node-fzf': [ '0.5.3' ],
46 silly audit nopt: [ '5.0.0' ],
46 silly audit npmlog: [ '5.0.0' ],
46 silly audit 'nth-check': [ '2.0.0' ],
46 silly audit 'object-assign': [ '4.1.1' ],
46 silly audit once: [ '1.4.0' ],
46 silly audit ow: [ '0.27.0' ],
46 silly audit 'parse-cache-control': [ '1.0.1' ],
46 silly audit parse5: [ '6.0.1' ],
46 silly audit 'parse5-htmlparser2-tree-adapter': [ '6.0.1' ],
46 silly audit 'path-is-absolute': [ '1.0.1' ],
46 silly audit 'process-nextick-args': [ '2.0.1' ],
46 silly audit progress: [ '2.0.3' ],
46 silly audit 'readable-stream': [ '2.3.7' ],
46 silly audit redstar: [ '0.0.2' ],
46 silly audit rimraf: [ '3.0.2' ],
46 silly audit 'safe-buffer': [ '5.1.2' ],
46 silly audit sax: [ '1.2.4' ],
46 silly audit 'set-blocking': [ '2.0.0' ],
46 silly audit 'signal-exit': [ '3.0.3' ],
46 silly audit string_decoder: [ '1.1.1' ],
46 silly audit 'string-width': [ '2.1.1' ],
46 silly audit 'strip-ansi': [ '4.0.0' ],
46 silly audit tar: [ '6.1.11' ],
46 silly audit 'timers-ext': [ '0.1.7' ],
46 silly audit 'tiny-typed-emitter': [ '2.1.0' ],
46 silly audit 'ts-mixer': [ '6.0.0' ],
46 silly audit tslib: [ '2.3.1' ],
46 silly audit ttys: [ '0.0.3' ],
46 silly audit 'type-fest': [ '1.4.0' ],
46 silly audit typedarray: [ '0.0.6' ],
46 silly audit 'util-deprecate': [ '1.0.2' ],
46 silly audit 'vali-date': [ '1.0.0' ],
46 silly audit 'wide-align': [ '1.1.3' ],
46 silly audit wrappy: [ '1.0.2' ],
46 silly audit ws: [ '7.5.4' ],
46 silly audit yallist: [ '4.0.0' ],
46 silly audit 'yt-search': [ '2.10.1' ],
46 silly audit 'ytdl-core': [ '4.9.1' ],
46 silly audit sodium: [ '3.0.2' ]
46 silly audit }
47 http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/advisories/bulk 1021ms
48 timing auditReport:getReport Completed in 1025ms
49 silly audit report {}
50 timing auditReport:init Completed in 0ms
51 timing reify:audit Completed in 1027ms
52 timing reifyNode:node_modules/sodium Completed in 1615ms
53 timing reify:unpack Completed in 1615ms
54 timing reify:unretire Completed in 0ms
55 timing build:queue Completed in 0ms
56 info run [email protected] preinstall node_modules/sodium node install.js --preinstall
57 info run [email protected] preinstall { code: 0, signal: null }
58 timing build:run:preinstall:node_modules/sodium Completed in 6976ms
59 timing build:run:preinstall Completed in 6977ms
60 info run [email protected] install node_modules/sodium node install.js --install
61 info run [email protected] install { code: 1, signal: null }
62 timing reify:rollback:createSparse Completed in 163ms
63 timing reify:rollback:retireShallow Completed in 0ms
64 timing command:install Completed in 10318ms
65 verbose stack Error: command failed
65 verbose stack at ChildProcess.<anonymous> (C:\Users\user\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\promise-spawn\index.js:64:27)
65 verbose stack at ChildProcess.emit (node:events:394:28)
65 verbose stack at maybeClose (node:internal/child_process:1064:16)
65 verbose stack at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)
66 verbose pkgid [email protected]
67 verbose cwd C:\Users\user\Desktop\all\DiscordBot
68 verbose Windows_NT 10.0.19043
69 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\user\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "install" "sodium"
70 verbose node v16.8.0
71 verbose npm v7.21.1
72 error code 1
73 error path C:\Users\user\Desktop\all\DiscordBot\node_modules\sodium
74 error command failed
75 error command C:\Windows\system32\cmd.exe /d /s /c node install.js --install
76 error MS Version: 2015
76 error Install Mode
76 error gyp info it worked if it ends with ok
76 error gyp info using [email protected]
76 error gyp info using [email protected] | win32 | x64
76 error gyp info find Python using Python version 2.7.15 found at "C:\Users\user\.windows-build-tools\python27\python.exe"
76 error gyp ERR! find VS
76 error gyp ERR! find VS msvs_version was set from command line or npm config
76 error gyp ERR! find VS - looking for Visual Studio version 2015
76 error gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
76 error gyp ERR! find VS checking VS2017 (15.9.28307.1622) found at:
76 error gyp ERR! find VS "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools"
76 error gyp ERR! find VS - found "Visual Studio C++ core features"
76 error gyp ERR! find VS - found VC++ toolset: v141
76 error gyp ERR! find VS - found Windows SDK: 10.0.17763.0
76 error gyp ERR! find VS - msvs_version does not match this version
76 error gyp ERR! find VS could not find a version of Visual Studio 2017 or newer to use
76 error gyp ERR! find VS looking for Visual Studio 2015
76 error gyp ERR! find VS - not found
76 error gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
76 error gyp ERR! find VS
76 error gyp ERR! find VS valid versions for msvs_version:
76 error gyp ERR! find VS - "2017"
76 error gyp ERR! find VS - "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools"
76 error gyp ERR! find VS
76 error gyp ERR! find VS **************************************************************
76 error gyp ERR! find VS You need to install the latest version of Visual Studio
76 error gyp ERR! find VS including the "Desktop development with C++" workload.
76 error gyp ERR! find VS For more information consult the documentation at:
76 error gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
76 error gyp ERR! find VS **************************************************************
76 error gyp ERR! find VS
76 error gyp ERR! configure error
76 error gyp ERR! stack Error: Could not find any Visual Studio installation to use
76 error gyp ERR! stack at VisualStudioFinder.fail (C:\Users\user\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:121:47)
76 error gyp ERR! stack at C:\Users\user\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:74:16
76 error gyp ERR! stack at VisualStudioFinder.findVisualStudio2013 (C:\Users\user\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:351:14)
76 error gyp ERR! stack at C:\Users\user\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:70:14
76 error gyp ERR! stack at C:\Users\user\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\find-visualstudio.js:372:16
76 error gyp ERR! stack at C:\Users\user\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\util.js:54:7
76 error gyp ERR! stack at C:\Users\user\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\util.js:33:16
76 error gyp ERR! stack at ChildProcess.exithandler (node:child_process:404:5)
76 error gyp ERR! stack at ChildProcess.emit (node:events:394:28)
76 error gyp ERR! stack at maybeClose (node:internal/child_process:1067:16)
76 error gyp ERR! System Windows_NT 10.0.19043
76 error gyp ERR! command "C:\\Users\\user\\Desktop\\all\\DiscordBot\\node_modules\\node\\bin\\node.exe" "C:\\Users\\user\\AppData\\Roaming\\npm\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
76 error gyp ERR! cwd C:\Users\user\Desktop\all\DiscordBot\node_modules\sodium
76 error gyp ERR! node -v v16.6.1
76 error gyp ERR! node-gyp -v v7.1.2
76 error gyp ERR! not ok
77 error C:\Users\user\Desktop\all\DiscordBot\node_modules\sodium\install.js:293
77 error throw new Error(cmdLine + ' exited with code ' + code);
77 error ^
77 error
77 error Error: node-gyp rebuild exited with code 1
77 error at ChildProcess.<anonymous> (C:\Users\user\Desktop\all\DiscordBot\node_modules\sodium\install.js:293:19)
77 error at ChildProcess.emit (node:events:394:28)
77 error at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
78 verbose exit 1
I have no idea what to do from here so any help is really appreciated.
Thank you
This is definitely a missing tooling problem. You can try installing the
windows-build-tools
package globally which should install everything you need, or troubleshoot manually.