on 2022 Jan 07 2:41 PM
Hi,
When running a CAP application with typescript support using the cds-ts command from powershell, I'm running into following error:
When running the same command from a regular command line shell the project is started perfectly:
I'm running the latest version of the @sap/cds-dk at the time of writing
Running on Windows 11, tried using powershell v5.1 (delivered by default) and powershell 7.2.1.
Anyone facing the same issue when running typescript enabled CAP applications from powershell?
Best regards,
Geert-Jan
EDIT: a temporary workaround, I adapted the cds-ts.ps1 script commenting out lines 5 -> 9 (ts-node-cwd.exe doesn't exist in my case, by disabling these lines the .exe extension is removed):
EDIT2: Alternative script could be (first checking the exe variant on windows, else loading the cmd version => cmd extension added to prevent the script from opening in a seperate window)
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$script=""
if ($IsWindows) {
if (Test-Path "$basedir/ts-node-cwd.exe"){
$script = "$basedir/ts-node-cwd.exe"
} elseif (Test-Path "$basedir/ts-node-cwd.cmd"){
$script = "$basedir/ts-node-cwd.cmd"
} elseif (Test-Path "ts-node-cwd.exe"){
$script = "ts-node-cwd.exe"
} else {
$script = "ts-node-cwd.cmd"
}
} else {
if (Test-Path "$basedir/ts-node-cwd"){
$script = "$basedir/ts-node-cwd"
} else {
$script = "ts-node-cwd"
}
}
$ret=0
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$script" "$basedir/node_modules/@sap/cds-dk/bin/cds-ts.js" $args
} else {
& "$script" "$basedir/node_modules/@sap/cds-dk/bin/cds-ts.js" $args
}
$ret=$LASTEXITCODE
exit $ret
Request clarification before answering.
Hello CAPpers,
after following the above suggestions,I I've tried to set Powershell as default under settings in Terminal as well, so VSCode opens new Powershell 7 (pwsh) as default terminal.
I stilled faced the issue, as alternate I tried to run it with
npx cds-ts run
It seems working properly including debugging, so I started to use it in package.json and launch.json in VSCode.
Best regards
Attila
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
For me the script failed because I used the default PowerShell version (5) in Windows 10. Then $IsWindows in the ps1 script doesn't work. Installing PowerShell 6 or higher fixes that problem. See also: https://learn.microsoft.com/en-us/powershell/scripting/install/installing-powershell-on-windows.
Next you can also use this command to fix the not found ts-node-cmd:
Add-Content $PROFILE "Set-Alias -Name ts-node-cwd.exe -Value ts-node-cwd.cmd"
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
59 | |
10 | |
8 | |
8 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.