install.cmd, install_dev.cmd and run.cmd hand over to PowerShell scripts that place Node of the .node-version major under %LOCALAPPDATA%, checked against the SHA-256 that nodejs.org publishes, then run npm ci: no administrator right is needed. The scripts stay within Windows PowerShell 5.1, shipped with Windows, and carry a UTF-8 byte order mark, without which 5.1 reads them in the system code page and mangles accents. The licence guard now reads .ps1, .cmd, .nix and Makefile. Checked: parsed and run under pwsh in a container, Node for win-x64 downloaded, verified and extracted; not yet run on Windows itself. --- FR --- [ADD] scripts : installer et lancer sous Windows, par PowerShell 5.1 install.cmd, install_dev.cmd et run.cmd passent la main à des scripts PowerShell qui posent Node de la majeure de .node-version sous %LOCALAPPDATA%, vérifié contre la somme SHA-256 que publie nodejs.org, puis lancent npm ci : aucun droit d'administrateur n'est requis. Les scripts s'en tiennent à Windows PowerShell 5.1, livré avec Windows, et portent une marque d'ordre d'octets UTF-8, sans laquelle 5.1 les lit dans la page de code du système et défigure les accents. La garde de licence lit désormais les .ps1, .cmd, .nix et le Makefile. Vérifié : analysés et exécutés sous pwsh en conteneur, Node win-x64 téléchargé, vérifié, extrait ; pas encore exécutés sous Windows même. Assisted-by: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01EUXSGcwCLSC69FWEdCtWSb
33 lines
1.1 KiB
PowerShell
33 lines
1.1 KiB
PowerShell
# © 2026 TechnoLibre (http://www.technolibre.ca)
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
|
|
|
|
# Exécute une commande à la racine du projet, le Node du projet en tête du
|
|
# PATH, une fois l'installation vérifiée : c'est par lui que le Makefile
|
|
# lance npm, npx et node sous Windows.
|
|
#
|
|
# powershell -File scripts\windows\avec_node.ps1 npm test
|
|
param([Parameter(ValueFromRemainingArguments = $true)][string[]]$Commande)
|
|
. (Join-Path $PSScriptRoot 'commun.ps1')
|
|
|
|
$elements = @($Commande | Where-Object { $_ })
|
|
if ($elements.Count -eq 0) {
|
|
Write-Gtt 'usage : scripts\windows\avec_node.ps1 <commande> [argument…]'
|
|
exit 2
|
|
}
|
|
Initialize-Gtt
|
|
Push-Location $script:GttRacine
|
|
try {
|
|
$programme = $elements[0]
|
|
# npm et npx se lancent par leur .cmd : leur variante .ps1 dépend de la
|
|
# stratégie d'exécution de la machine.
|
|
if (@('npm', 'npx') -contains $programme) { $programme = "$programme.cmd" }
|
|
if ($elements.Count -gt 1) {
|
|
$reste = $elements[1..($elements.Count - 1)]
|
|
& $programme @reste
|
|
} else {
|
|
& $programme
|
|
}
|
|
exit $LASTEXITCODE
|
|
} finally {
|
|
Pop-Location
|
|
}
|