On the way of installing Webpack on my React Project, the following problem hinders my progress:
last step to configure the Webpack
npm run build && node ./dist/main.js
Error on Windows Power Shell / on Visual Studio Code
PS C:\Users\pythonbuddha\Desktop\to_experiment\to-do-list> npm run build && node ./dist/main.js
At line:1 char:15
+ npm run build && node ./dist/main.js
+ ~~
The token '&&' is not a valid statement separator in this version.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : InvalidEndOfLine
Tutorial which promised to configure the webpack
https://developerhandbook.com/webpack/webpack-4-from-absolute-scratch/
https://developerhandbook.com/webpack/how-to-configure-scss-modules-for-webpack/
I found that within PowerShell as my terminal within VS Code
, replacing &&
in the command with ;
did the trick.
PowerShell (Core) v7+ - but not Windows PowerShell - now does support &&
and ||
, the pipeline-chain operators, so your command should work as-is there.
&&
executes its RHS only if the LHS indicated success, analogous to how &&
works in POSIX-compatible shells such as bash
and in cmd.exe
on Windows.
Windows PowerShell workarounds:
The most succinct workaround:
npm run build; if ($?) { node ./dist/main.js }
This builds on the automatic $?
variable, which is a Boolean indicating whether the most recent command succeeded.
The most robust workaround, needed if the commands use 2>
redirections:
npm run build; if ($LASTEXITCODE -eq 0) { node ./dist/main.js }
Basing the success test on the automatic $LastExitCode
variable, which reflects the process exit code of the most recently executed external program, avoids problems in Windows PowerShell[1] where the presence of stderr output in combination with redirecting it via 2>
mistakenly sets $?
to $false
even when the process exit code is 0
.
[1] The problems with 2>
redirections are summarized in this answer. They also plague PowerShell (Core) up to version 7.1