Can't update to 2.5.3 on Azure Web App Windows hosting, fibers error

Hi,

I am currently running Meteor apps on Azure Web Apps platform running windows.

I build using os.windows.x86_64

When I try to update to latest releases, past 1.9.2, I get stuck at fibers.

I see this error all the time and can’t get passed it.

> fibers@5.0.0 install D:\home\site\wwwroot\programs\server\node_modules\fibers
> node build.js || nodejs build.js


D:\home\site\wwwroot\programs\server\node_modules\fibers>if not defined npm_config_node_gyp (node "D:\Program Files (x86)\npm\6.14.15\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild --release )  else (node "D:\Program Files (x86)\npm\6.14.15\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild --release ) 
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
D:\home\site\wwwroot\programs\server\node_modules\fibers\build\fibers.vcxproj(20,3): error MSB4019: The imported project "D:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
gyp ERR! build error 
gyp ERR! stack Error: `D:\Program Files (x86)\MSBuild\14.0\bin\MSBuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (D:\Program Files (x86)\npm\6.14.15\node_modules\npm\node_modules\node-gyp\lib\build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:400:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:282:12)
gyp ERR! System Windows_NT 10.0.14393
gyp ERR! command "D:\\Program Files (x86)\\nodejs\\14.18.1\\node.exe" "D:\\Program Files (x86)\\npm\\6.14.15\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--release"
gyp ERR! cwd D:\home\site\wwwroot\programs\server\node_modules\fibers
gyp ERR! node -v v14.18.1
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 
node-gyp exited with code: 1
Please make sure you are using a supported platform and node version. If you
would like to compile fibers on this machine please make sure you have setup your
build environment--
Windows + OS X instructions here: https://github.com/nodejs/node-gyp
Ubuntu users please run: `sudo apt-get install g++ build-essential`
RHEL users please run: `yum install gcc-c++` and `yum groupinstall 'Development Tools'` 
Alpine users please run: `sudo apk add python make g++`
'nodejs' is not recognized as an internal or external command,
operable program or batch file.
e[37;40mnpm e[31;40mERR! code ELIFECYCLE
e[37;40mnpm e[31;40mERR! errno 1
e[37;40mnpm e[31;40mERR! fibers@5.0.0 install: `node build.js || nodejs build.js`
e[37;40mnpm e[31;40mERR! Exit status 1
e[37;40mnpm e[31;40mERR! 
e[37;40mnpm e[31;40mERR! Failed at the fibers@5.0.0 install script.
e[37;40mnpm e[31;40mERR! This is probably not a problem with npm. There is likely additional logging output above.

e[37;40mnpm e[31;40mERR! A complete log of this run can be found in:
e[37;40mnpm e[31;40mERR!     D:\local\Temp\monacositeextension\temp\_logs\2022-01-05T18_39_36_908Z-debug.log

On 1.9.2 I had to npm install fibers@4.0.2 because anything afterwards would always give me this error.

I have limited control over the environment, its a VM but I don’t really control it.

Any help is appreciated.

Thanks!

UPDATE 1:

Ok, so the issue with error MSB4019: The imported project "D:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk. was fixed by setting an environment variable VCTargetsPath pointing to the path that I received when I went into the console and ran echo %VCTargetsPath%.

Now I get this error:

npm WARN deprecated node-pre-gyp@0.15.0: Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future

> fibers@https://github.com/meteor/node-fibers/archive/refs/tags/5.0.0-1.tar.gz install D:\home\site\wwwroot\programs\server\node_modules\fibers
> node build.js || nodejs build.js


D:\home\site\wwwroot\programs\server\node_modules\fibers>if not defined npm_config_node_gyp (node "D:\Program Files (x86)\npm\6.14.15\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild --release )  else (node "D:\Program Files (x86)\npm\6.14.15\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild --release ) 
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
  fibers.cc
  coroutine.cc
  win_delay_load_hook.cc
d:\local\localappdata\node-gyp\cache\14.18.1\include\node\v8.h(22): fatal error C1083: Cannot open include file: 'memory': No such file or directory (compiling source file ..\src\fibers.cc) [D:\home\site\wwwroot\programs\server\node_modules\fibers\build\fibers.vcxproj]
d:\local\localappdata\node-gyp\cache\14.18.1\include\node\v8.h(22): fatal error C1083: Cannot open include file: 'memory': No such file or directory (compiling source file ..\src\coroutine.cc) [D:\home\site\wwwroot\programs\server\node_modules\fibers\build\fibers.vcxproj]
gyp ERR! build error 
gyp ERR! stack Error: `D:\Program Files (x86)\MSBuild\14.0\bin\MSBuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (D:\Program Files (x86)\npm\6.14.15\node_modules\npm\node_modules\node-gyp\lib\build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:400:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:282:12)
gyp ERR! System Windows_NT 10.0.14393
gyp ERR! command "D:\\Program Files (x86)\\nodejs\\14.18.1\\node.exe" "D:\\Program Files (x86)\\npm\\6.14.15\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--release"
gyp ERR! cwd D:\home\site\wwwroot\programs\server\node_modules\fibers
gyp ERR! node -v v14.18.1
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 
node-gyp exited with code: 1
Please make sure you are using a supported platform and node version. If you
would like to compile fibers on this machine please make sure you have setup your
build environment--
Windows + OS X instructions here: https://github.com/nodejs/node-gyp
Ubuntu users please run: `sudo apt-get install g++ build-essential`
RHEL users please run: `yum install gcc-c++` and `yum groupinstall 'Development Tools'` 
Alpine users please run: `sudo apk add python make g++`
'nodejs' is not recognized as an internal or external command,
operable program or batch file.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! fibers@https://github.com/meteor/node-fibers/archive/refs/tags/5.0.0-1.tar.gz install: `node build.js || nodejs build.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the fibers@https://github.com/meteor/node-fibers/archive/refs/tags/5.0.0-1.tar.gz install 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!     D:\local\AppData\npm-cache\_logs\2022-01-06T11_14_03_288Z-debug.log

Update 2: I found this post on stackoverflow explaining that the 2nd error is related to node-gyp and Azure. node.js - Error installing npm package on Azure app service - Stack Overflow

Unfortunately might not have a solution that I can use on my end except for building libraries on a local machine and uploading them. I would prefer an automated solution that I do not have to manage independently every time.

Ok, I was able to build a copy of the fibers on my local windows machine and tested it against my project by uploading the package folder and it seems to work.

So from what I gather I have to wait until this is fixed: Fibers is missing binaries; can do away with fork · Issue #11791 · meteor/meteor · GitHub

Also, if you are using Azure Web Apps on Windows, you are stuck, you need to use Linux.
Here is the latest response I got from their support team on the issue.

Since the module is a native module and requires a specific compiler, it’d be better to compile the application in your computer and then deploy it with the node_modules. Or a workaround is to use an App Service Linux.