在我的React项目上安装Webpack的过程中,以下问题阻碍了我的进度:
配置Webpack的最后一步
npm run build && node ./dist/main.js
Windows Power Shell /Visual Studio代码上出现错误
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
承诺配置Webpack的教程
https://developerhandbook.com/webpack/webpack-4-from-absolute-scratch/
https://developerhandbook.com/webpack/how-to-configure-scss-modules-for-webpack/
6条答案
按热度按时间vcirk6k61#
因为你是在PowerShell中,试着在
CMD
或Git Bash
中运行或者(如果您希望继续PS):
第三种选择,分别运行,
w8f9ii692#
我发现在PowerShell中作为我在
VS Code
中的终端,将命令中的&&
替换为;
就可以了。vptzau2j3#
PowerShell (Core) v7+-但 * 不Windows PowerShell* -现在 * 不 * 支持
&&
和||
,即pipeline-chain operators,因此您的命令应按以下方式工作**-请参阅this answer以了解PowerShell特定的使用注意事项;有关Windows PowerShell的解决方法,请参见下文。概念说明:
cmd.exe
和POSIX兼容的shell,如Bash)中,&&
* 有条件地 * 对命令进行序列化:仅当LHS命令指示 * 成功*时,它才执行其RHS命令;||
是倒数:它仅在LHS指示 * 失败 * 时才执行RHS。npm run build && node ./dist/main.js
只有在构建成功 * 的情况下运行刚刚构建的内容(使用node
)才有意义,这是&&
所确保的。Windows PowerShell 解决方法:
最 * 简洁*的解决方法:
这基于自动变量
$?
,它是一个布尔值,指示最近的命令是否成功。最 * 可靠*的解决方法,如果命令使用
2>
重定向,则需要:基于自动
$LastExitCode
变量(反映最近执行的 * 外部程序 * 的 * 进程退出代码 *)的成功测试避免了Windows PowerShell[1]中的问题,即存在 stderr 输出并通过2>
对其进行重定向会错误地将$?
设置为$false
,即使进程退出代码为0
。[1][this answer](https://stackoverflow.com/a/66726535/45375)中总结了
2>
重定向的问题。这些问题也困扰着7.1之前的PowerShell(核心)版本44u64gxh4#
&&
操作符在linuxbash
中用于一个接一个地运行两个命令(同样,如果第一个命令失败,第二个命令也不会执行)这在Windows上的PowerShell中不起作用,因此只需将这两个命令拆分并单独运行:
为了完整起见,PowerShell可以在您执行
(command1) -and (command2)
时表现相同,而&&
实际上可能会根据您的PowerShell版本而工作。更多信息,请参见:https://stackoverflow.com/a/564092/2232127
iqxoj9l95#
我已经通过升级powershell和通过删除空格重命名dir. path文件夹名称解决了这个问题。现在它工作正常。
Powershell升级链接
https://github.com/PowerShell/PowerShell/releases/tag/v7.2.0-preview.8
omqzjyyz6#
因为有些人可能会以与我相同的方式来到这里,想知道为什么PowerShell不允许我在if语句中的两个变量之间执行条件AND运算符。
我通过用If条件计算Left条件,然后在第一个true条件内立即计算Right条件来解决这个问题。
产生错误的示例:
我用来解决这个问题的例子: