nodejs / help

:sparkles: Need help with Node.js? File an Issue here. :rocket:
1.45k stars 278 forks source link

Error with trying to use VS2019 when building a Node Addon (with node-addon-api) #1962

Open DragonOsman opened 5 years ago

DragonOsman commented 5 years ago

I have this error when I try to build an addon with node-addon-api:

gyp info it worked if it ends with ok
gyp info using node-gyp@4.0.0
gyp info using node@12.4.0 | win32 | x64
gyp info spawn C:\Python27\python.EXE
gyp info spawn args [
gyp info spawn args   'C:\\Users\\Osman\\AppData\\Roaming\\npm\\node_modules\\node-gyp\\gyp\\gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'msvs',
gyp info spawn args   '-G',
gyp info spawn args   'msvs_version=2019',
gyp info spawn args   '-I',
gyp info spawn args   'E:\\programming\\test-addon_medium\\build\\config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\Osman\\AppData\\Roaming\\npm\\node_modules\\node-gyp\\addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   'C:\\Users\\Osman\\.node-gyp\\12.4.0\\include\\node\\common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=C:\\Users\\Osman\\.node-gyp\\12.4.0',
gyp info spawn args   '-Dnode_gyp_dir=C:\\Users\\Osman\\AppData\\Roaming\\npm\\node_modules\\node-gyp',
gyp info spawn args   '-Dnode_lib_file=C:\\Users\\Osman\\.node-gyp\\12.4.0\\<(target_arch)\\node.lib',
gyp info spawn args   '-Dmodule_root_dir=E:\\programming\\test-addon_medium',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'E:\\programming\\test-addon_medium\\build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
Traceback (most recent call last):
  File "C:\Users\Osman\AppData\Roaming\npm\node_modules\node-gyp\gyp\gyp_main.py", line 16, in <module>
    sys.exit(gyp.script_main())
  File "C:\Users\Osman\AppData\Roaming\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 545, in script_main
    return main(sys.argv[1:])
  File "C:\Users\Osman\AppData\Roaming\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 538, in main
    return gyp_main(args)
  File "C:\Users\Osman\AppData\Roaming\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 514, in gyp_main
    options.duplicate_basename_check)
  File "C:\Users\Osman\AppData\Roaming\npm\node_modules\node-gyp\gyp\pylib\gyp\__init__.py", line 98, in Load
    generator.CalculateVariables(default_variables, params)
  File "C:\Users\Osman\AppData\Roaming\npm\node_modules\node-gyp\gyp\pylib\gyp\generator\msvs.py", line 1916, in CalculateVariables
    generator_flags.get('msvs_version', 'auto'))
  File "C:\Users\Osman\AppData\Roaming\npm\node_modules\node-gyp\gyp\pylib\gyp\MSVSVersion.py", line 434, in SelectVisualStudioVersion
    versions = _DetectVisualStudioVersions(version_map[version], 'e' in version)
KeyError: '2019'
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (C:\Users\Osman\AppData\Roaming\npm\node_modules\node-gyp\lib\configure.js:345:16)
gyp ERR! stack     at ChildProcess.emit (events.js:200:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Windows_NT 10.0.17763
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\Osman\\AppData\\Roaming\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "configure" "--msvs_version=2019"
gyp ERR! cwd E:\programming\test-addon_medium
gyp ERR! node -v v12.4.0
gyp ERR! node-gyp -v v4.0.0
gyp ERR! not ok

The command I ran was: `node-gyp configure --msvs_version=2019". I did this on the Developer Command Prompt for VS 2019.

The version of Node I have is 12.4.0 and the version of Windows is Version 10.0.17763.503. Windows 10 Home, by the way.

Any help would be appreciated

richardlau commented 5 years ago

VS2019 support (https://github.com/nodejs/node-gyp/pull/1762) is on the list of things contained in the as yet unreleased node-gyp@5.0.0: https://github.com/nodejs/node-gyp/pull/1723

DragonOsman commented 5 years ago

Visual Studio 2017 gave me the same error, though? Maybe only VS2015 is fully supported so far.

Danc2050 commented 2 years ago

Visual Studio 2017 gave me the same error, though? Maybe only VS2015 is fully supported so far.

2017 works for me as of today.

npm config set msvs_version 2017
npm install
Asef00 commented 2 years ago

Visual Studio 2017 gave me the same error, though? Maybe only VS2015 is fully supported so far.

2017 works for me as of today.

npm config set msvs_version 2017
npm install

In some cases, you need to set the correct path to MSBuild.exe

npm config set msbuild_path "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe"