aio-cli icon indicating copy to clipboard operation
aio-cli copied to clipboard

Windows (M1, arm64): aio-cli requires Python, and Visual Studio

Open shazron opened this issue 2 years ago • 7 comments

I had to install Python@3, then it complained that there was no Visual Studio installed. We should list this in the requirements properly. This was not covered in https://developer.adobe.com/app-builder/docs/getting_started/

See https://github.com/nodejs/node-gyp#on-windows

VS Build Tools (approx 8 GB) complains that it may not work on ARM Windows 11, it might be slow - but since it's just a one-time node-gyp install dependency thing that might be ok.

It's possible that similar requirements exist on macOS (Python, Xcode tools).

PS C:\Users\shazron> npm install -g @adobe/aio-cli
npm WARN deprecated [email protected]: This functionality has been moved to @npmcli/fs
npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
npm WARN deprecated [email protected]: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
npm WARN deprecated @oclif/[email protected]: Deprecated in favor of @oclif/core
npm WARN deprecated [email protected]: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm ERR! code 1
npm ERR! path C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\@parcel\watcher
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node-gyp-build
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | win32 | ia32
npm ERR! gyp info find Python using Python version 3.10.9 found at "C:\Users\shazron\AppData\Local\Programs\Python\Python310\python.exe"
npm ERR! gyp http GET https://nodejs.org/download/release/v16.19.1/node-v16.19.1-headers.tar.gz
npm ERR! gyp http 200 https://nodejs.org/download/release/v16.19.1/node-v16.19.1-headers.tar.gz
npm ERR! gyp http GET https://nodejs.org/download/release/v16.19.1/SHASUMS256.txt
npm ERR! gyp http GET https://nodejs.org/download/release/v16.19.1/win-arm64/node.lib
npm ERR! gyp http GET https://nodejs.org/download/release/v16.19.1/win-x86/node.lib
npm ERR! gyp http GET https://nodejs.org/download/release/v16.19.1/win-x64/node.lib
npm ERR! gyp http 200 https://nodejs.org/download/release/v16.19.1/SHASUMS256.txt
npm ERR! gyp http 200 https://nodejs.org/download/release/v16.19.1/win-x64/node.lib
npm ERR! gyp http 200 https://nodejs.org/download/release/v16.19.1/win-x86/node.lib
npm ERR! gyp http 404 https://nodejs.org/download/release/v16.19.1/win-arm64/node.lib
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS msvs_version not set from command line or npm config
npm ERR! gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
npm ERR! gyp ERR! find VS could not use PowerShell to find Visual Studio 2017 or newer, try re-running with '--loglevel silly' for more details
npm ERR! gyp ERR! find VS looking for Visual Studio 2015
npm ERR! gyp ERR! find VS - not found
npm ERR! gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS **************************************************************
npm ERR! gyp ERR! find VS You need to install the latest version of Visual Studio
npm ERR! gyp ERR! find VS including the "Desktop development with C++" workload.
npm ERR! gyp ERR! find VS For more information consult the documentation at:
npm ERR! gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
npm ERR! gyp ERR! find VS **************************************************************
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Could not find any Visual Studio installation to use
npm ERR! gyp ERR! stack     at VisualStudioFinder.fail (C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\node-gyp\lib\find-visualstudio.js:122:47)
npm ERR! gyp ERR! stack     at C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\node-gyp\lib\find-visualstudio.js:75:16
npm ERR! gyp ERR! stack     at VisualStudioFinder.findVisualStudio2013 (C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\node-gyp\lib\find-visualstudio.js:363:14)
npm ERR! gyp ERR! stack     at C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\node-gyp\lib\find-visualstudio.js:71:14
npm ERR! gyp ERR! stack     at C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\node-gyp\lib\find-visualstudio.js:384:16
npm ERR! gyp ERR! stack     at C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\node-gyp\lib\util.js:54:7
npm ERR! gyp ERR! stack     at C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\node-gyp\lib\util.js:33:16
npm ERR! gyp ERR! stack     at ChildProcess.exithandler (node:child_process:410:5)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
npm ERR! gyp ERR! stack     at maybeClose (node:internal/child_process:1100:16)
npm ERR! gyp ERR! System Windows_NT 10.0.22621
npm ERR! gyp ERR! command "C:\\Users\\shazron\\AppData\\Local\\nvs\\node\\16.19.1\\x86\\node.exe" "C:\\Users\\shazron\\AppData\\Local\\nvs\\node\\16.19.1\\x86\\node_modules\\@adobe\\aio-cli\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\@parcel\watcher
npm ERR! gyp ERR! node -v v16.19.1
npm ERR! gyp ERR! node-gyp -v v8.4.1
npm ERR! gyp ERR! not ok

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\shazron\AppData\Local\npm-cache\_logs\2023-03-03T13_42_38_528Z-debug-0.log

shazron avatar Mar 03 '23 13:03 shazron

The instructions at https://github.com/nodejs/node-gyp#on-windows is incomplete:

  • you need to install a Windows SDK as well (node-gyp errored without this). Install the SDK for your OS. Windows 11 SDK is 563 MB. Windows 10 SDK is 988MB.
npm ERR! gyp ERR! find VS msvs_version was set from command line or npm config
npm ERR! gyp ERR! find VS - looking for Visual Studio version 2017
npm ERR! gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
npm ERR! gyp ERR! find VS checking VS2022 (17.5.33424.131) found at:
npm ERR! gyp ERR! find VS "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools"
npm ERR! gyp ERR! find VS - found "Visual Studio C++ core features"
npm ERR! gyp ERR! find VS - found VC++ toolset: v143
npm ERR! gyp ERR! find VS - missing any Windows SDK

shazron avatar Mar 03 '23 17:03 shazron

More issues. [email protected] which is used somewhere in our dependencies, does not support the Windows 11 SDK. [email protected] has this support (MS renamed some SDK file) but not sure what dep I need to update yet. See https://github.com/nodejs/node-gyp/pull/2702

Workaround: on Windows 11, install Windows 10 SDK.

shazron avatar Mar 03 '23 17:03 shazron

node-gyp is run from the lmdb module, from parcel.

@adobe/[email protected] /Users/shazron/Documents/git/work/adobe/aio-cli
└─┬ @adobe/[email protected]
  └─┬ @parcel/[email protected]
    └─┬ @parcel/[email protected]
      └── [email protected]

[email protected] is trying to install optional dependencies, for each os platform:

npm ERR! path C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\lmdb
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node-gyp-build-optional-packages
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using [email protected]
npm ERR! gyp info using [email protected] | win32 | ia32
npm ERR! gyp info find Python using Python version 3.10.9 found at "C:\Users\shazron\AppData\Local\Programs\Python\Python310\python.exe"
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS msvs_version was set from command line or npm config
npm ERR! gyp ERR! find VS - looking for Visual Studio version 2022
npm ERR! gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
npm ERR! gyp ERR! find VS checking VS2022 (17.5.33424.131) found at:
npm ERR! gyp ERR! find VS "C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools"
npm ERR! gyp ERR! find VS - found "Visual Studio C++ core features"
npm ERR! gyp ERR! find VS - found VC++ toolset: v143
npm ERR! gyp ERR! find VS - missing any Windows SDK
npm ERR! gyp ERR! find VS could not find a version of Visual Studio 2017 or newer to use
npm ERR! gyp ERR! find VS looking for Visual Studio 2015
npm ERR! gyp ERR! find VS - not found
npm ERR! gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS valid versions for msvs_version:
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS **************************************************************
npm ERR! gyp ERR! find VS You need to install the latest version of Visual Studio
npm ERR! gyp ERR! find VS including the "Desktop development with C++" workload.
npm ERR! gyp ERR! find VS For more information consult the documentation at:
npm ERR! gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows
npm ERR! gyp ERR! find VS **************************************************************
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: Could not find any Visual Studio installation to use
npm ERR! gyp ERR! stack     at VisualStudioFinder.fail (C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\node-gyp\lib\find-visualstudio.js:122:47)
npm ERR! gyp ERR! stack     at C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\node-gyp\lib\find-visualstudio.js:75:16
npm ERR! gyp ERR! stack     at VisualStudioFinder.findVisualStudio2013 (C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\node-gyp\lib\find-visualstudio.js:363:14)
npm ERR! gyp ERR! stack     at C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\node-gyp\lib\find-visualstudio.js:71:14
npm ERR! gyp ERR! stack     at C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\node-gyp\lib\find-visualstudio.js:384:16
npm ERR! gyp ERR! stack     at C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\node-gyp\lib\util.js:54:7
npm ERR! gyp ERR! stack     at C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\node-gyp\lib\util.js:33:16
npm ERR! gyp ERR! stack     at ChildProcess.exithandler (node:child_process:410:5)
npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:513:28)
npm ERR! gyp ERR! stack     at maybeClose (node:internal/child_process:1100:16)
npm ERR! gyp ERR! System Windows_NT 10.0.22621
npm ERR! gyp ERR! command "C:\\Users\\shazron\\AppData\\Local\\nvs\\node\\16.19.1\\x86\\node.exe" "C:\\Users\\shazron\\AppData\\Local\\nvs\\node\\16.19.1\\x86\\node_modules\\@adobe\\aio-cli\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
npm ERR! gyp ERR! cwd C:\Users\shazron\AppData\Local\nvs\node\16.19.1\x86\node_modules\@adobe\aio-cli\node_modules\lmdb
npm ERR! gyp ERR! node -v v16.19.1
npm ERR! gyp ERR! node-gyp -v v8.4.1
npm ERR! gyp ERR! not ok

shazron avatar Mar 03 '23 17:03 shazron

If we remove parcel (as planned) we will not have this issue anymore.

shazron avatar Mar 03 '23 17:03 shazron

I think it's trying to build the binaries, because a pre-built binary is not available for the aarch64/arm64 architecture. In any case, when I installed the Windows 10 SDK and ran it again, it failed because of some other error.

Need to re-test on a non-arm64 Windows install.

shazron avatar Mar 03 '23 18:03 shazron

JIRA issue created: https://jira.corp.adobe.com/browse/ACNA-2121

aiojbot avatar Mar 09 '23 15:03 aiojbot

Has there been any traction on removing the parcel dependency? Trying to get the build tools installed in a corporate environment is incredibly difficult and eliminating this dependency would be a massive help

arobsco avatar Jul 06 '23 09:07 arobsco