Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
cordova-serve@2.0.1
-
None
-
- Windows 10 German Version 1703
- cordova@8.0.0
- cordova-simulate@0.4.0
- cordova-serve@2.0.1
Description
When running cordova simulate with a specific browser, e.g.
simulate android --target=chrome
the simulation does not start but instead throws an error:
C:\Users\pk\AppData\Roaming\npm\node_modules\cordova-simulate\node_modules\cordova-serve\src\browser.js:224 if (fs.existsSync(trimRegPath(result[2]))) { ^ TypeError: Cannot read property '2' of null at C:\Users\pk\AppData\Roaming\npm\node_modules\cordova-simulate\node_modules\cordova-serve\src\browser.js:224:57 at ChildProcess.exithandler (child_process.js:267:7) at emitTwo (events.js:126:13) at ChildProcess.emit (events.js:214:7) at maybeClose (internal/child_process.js:925:16) at Socket.stream.socket.on (internal/child_process.js:346:11) at emitOne (events.js:116:13) at Socket.emit (events.js:211:7) at Pipe._handle.close [as _onclose] (net.js:557:12)
Reason is a language-dependent result from reg.exe when querying the path/to/browser in the regex line 201 in browser.js.The output from reg.exe for chrome (parameter stdout) is in my configuration:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.EXE (Standard) REG_SZ C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
But the code expects (Note (Standard) vs. (Default)) :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.EXE (Default) REG_SZ C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
To fix, i would suggest changing the regex in
from
var regItemPattern = /\s*\(Default\)\s+(REG_SZ)\s+([^\s].*)\s*/;
to
var regItemPattern = /\s*\(.*\)\s+(REG_SZ)\s+([^\s].*)\s*/;
to match most translations.
Regards
Peter