在多个目录中运行NPM安装的Powershell脚本会持续启动多个安装

s1ag04yj  于 2022-11-24  发布在  Shell
关注(0)|答案(1)|浏览(107)

希望有人能帮助我。
我目前正在为自己创建一个项目模板,以便将来用于电子/React。
除了我的预安装脚本外,大部分都能正常工作。

File Hierarchy:
-/root
--/package.json
--/react
---/package.json
--/electron
---/package.json

说明:在每个目录中创建了Powershell脚本Set-Path,并为3个包中的每一个运行npm install。
问题:脚本在反复安装时陷入循环。
代码示例:

$root = Get-Location
$locations = $root,"$root/electron","$root/react"

Foreach ($location in $locations) {
    Set-Location $locations
    npm install
}

Set-Location $root

有人知道如何防止这种情况吗?要么让Powershell等待NPM安装在每个循环中运行,要么用一种更好的方法一次在3个包上运行NPM安装。

mf98qq94

mf98qq941#

发现了这个问题,并希望张贴它,以防任何人发现自己处于类似的困境。
本质上,问题是与NPM包和我如何设置它。
我已经将调用此PS脚本的NPM脚本命名为"Preinstall",并且由于此PS脚本也将为软件包执行NPM安装,这将导致无限循环。
解决方案:
1.从PS脚本中删除初始NPM安装,并让NPM通过CLI安装按预期调用预安装脚本。
1.将NPM脚本重命名为其他名称,但这不是最易于使用的解决方案。
例如,NPM脚本

"preinstall": "@powershell -NoProfile -ExecutionPolicy Unrestricted -Command ./preinstall.ps1"

相关问题