Description
Description:
Somewhere during releases the following code has been introduced in a release:
53d0afa#diff-7c6997f05d0c3a730c4dd717afb61024
The problem I encounter is that in some cases the call to os.userInfo();
can lead to a SystemError
if the username or homedirectory is not returned by the OS as described here: https://nodejs.org/api/os.html#os_os_userinfo_options For me this is the case when running the ionic-cli in a Docker container using the --user
parameter to specify a custom UID.
Steps to Reproduce:
Run the command npx ionic build --prod --verbose
inside a docker container using the --user
Docker argument to specify a specific UID.
Output:
ionic:utils-terminal Environment variables for CI detected: BUILD_ID, BUILD_NUMBER
SystemError [ERR_SYSTEM_ERROR]: A system error occurred: uv_os_get_passwd returned ENOENT (no such file or directory)
My ionic info
:
Command can not run due to the aforementioned error. This was tested with the @ionic/cli latest package and is reproducible from latest until version 5.4.7 where the code was introduced. Also the exception is thrown by all modern Node versions.
Possible solution:
As the method contains multiple methods of detecting a usable shell. It might be proficient to simply catch the exception and carry on using one of the following detection methods to determine the shell.