admin管理员组文章数量:1416322
I installed wp-cli back in April on my Windows box using composer. I believe with the following command: composer create-project wp-cli/wp-cli --no-dev
as outlined in the alternate install methods on here.
I have since used "composer update --no-dev
" to update but just realized that it is only updating the dependencies and not the wp-cli package itself. If I run a "wp cli version
" it reports version WP-CLI 0.18.0, yet v0.20.4 is the latest released version.
I can't seem to find any way to update wp-cli. I suppose I could just install a new copy each time but that seems silly. Regardless, I did test and if I issue a "composer create-project wp-cli/wp-cli --no-dev
" in a new directory it downloads the latest version. I also tried "wp cli update
" but it reports back "Error: You can only self-update PHARs."
I installed wp-cli back in April on my Windows box using composer. I believe with the following command: composer create-project wp-cli/wp-cli --no-dev
as outlined in the alternate install methods on here.
I have since used "composer update --no-dev
" to update but just realized that it is only updating the dependencies and not the wp-cli package itself. If I run a "wp cli version
" it reports version WP-CLI 0.18.0, yet v0.20.4 is the latest released version.
I can't seem to find any way to update wp-cli. I suppose I could just install a new copy each time but that seems silly. Regardless, I did test and if I issue a "composer create-project wp-cli/wp-cli --no-dev
" in a new directory it downloads the latest version. I also tried "wp cli update
" but it reports back "Error: You can only self-update PHARs."
2 Answers
Reset to default 0You need to remove composer.lock
before running composer update
. composer.lock
locks your Composer project to a specific hash.
Apparently this isn't possible using only composer. Seems kind of silly for it to be a recommended way to install WP-CLI with no direct way to update it later. I ended up installing GIT and then doing a fresh install (e.g. git clone https://github/wp-cli/wp-cli.git d:\wp-cli
) of wp-cli. Afterwards, issued a composer update --no-dev
to install dependencies. Now in the future to update wp-cli I run git pull origin
from d:\wp-cli followed by composer update --no-dev
.
Let me know if this is wrong! :)
Edit--
So I realized that the above command was updating to the latest commit in the master branch. I couldn't find any automated way to always update to the latest branch so I wrote the following batch file. It queries all the tags from the wp-cli repo, iterates through them to find the latest one (because they are sorted alpha), then either clones or resets (if local repo already exists) to that tag. Then updates the dependencies via composer.
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
SET WPCLI_INSTALL_DRIVE=D:
SET WPCLI_INSTALL_DIR=WP-CLI
SET LATEST_WPCLI_MAJOR=-1
SET LATEST_WPCLI_MINOR=0
SET LATEST_WPCLI_REV=0
echo.
echo COMMIT_ID - TAG_NAME ^=^> VERSION_DETECTION [*] (* ^= Marked as latest)
for /f "tokens=1*" %%A in ('git ls-remote --tags https://github/wp-cli/wp-cli.git') do (
SET "TAG_LINE=%%A"
IF NOT "%%B"=="" (
SET "TAG_LINE=!TAG_LINE! - %%B"
for /f "tokens=2 delims=v" %%C in ("%%B") do (
echo "%%C"|find /i ".">nul
IF NOT ERRORLEVEL 1 (
for /f "tokens=1-3 delims=." %%D in ("%%C") do (
SET "TAG_LINE=!TAG_LINE! ^=^> v%%D.%%E.%%F"
SET LATEST_WPCLI_FOUND=0
IF /I %%D GTR !LATEST_WPCLI_MAJOR! (
SET LATEST_WPCLI_FOUND=1
) ELSE (
IF /I %%D GEQ !LATEST_WPCLI_MAJOR! (
IF /I %%E GTR !LATEST_WPCLI_MINOR! (
SET LATEST_WPCLI_FOUND=1
) ELSE (
IF /I %%E GEQ !LATEST_WPCLI_MINOR! (
IF /I %%F GTR !LATEST_WPCLI_REV! (
SET LATEST_WPCLI_FOUND=1
)
)
)
)
)
IF "!LATEST_WPCLI_FOUND!"=="1" (
SET "TAG_LINE=!TAG_LINE! *"
SET LATEST_WPCLI_MAJOR=%%D
SET LATEST_WPCLI_MINOR=%%E
SET LATEST_WPCLI_REV=%%F
)
)
)
)
)
echo !TAG_LINE!
)
echo.
echo.
IF NOT "%LATEST_WPCLI_MAJOR%"=="-1" (
echo Latest detected tag: v%LATEST_WPCLI_MAJOR%.%LATEST_WPCLI_MINOR%.%LATEST_WPCLI_REV%
echo.
IF EXIST "%WPCLI_INSTALL_DRIVE%\%WPCLI_INSTALL_DIR%\bin\wp.bat" (
echo Current WP-CLI Version:
call "%WPCLI_INSTALL_DRIVE%\%WPCLI_INSTALL_DIR%\bin\wp.bat" cli version
) ELSE (
echo Current "%WPCLI_INSTALL_DRIVE%\%WPCLI_INSTALL_DIR%\bin\wp.bat" not found to display current version.
)
echo.
choice /m "Continue installing/updating?"
IF ERRORLEVEL 2 exit /b 0
IF EXIST "%WPCLI_INSTALL_DRIVE%\%WPCLI_INSTALL_DIR%\.gitignore" (
CHDIR /D "%WPCLI_INSTALL_DRIVE%\%WPCLI_INSTALL_DIR%"
git reset --hard "v%LATEST_WPCLI_MAJOR%.%LATEST_WPCLI_MINOR%.%LATEST_WPCLI_REV%"
) ELSE (
git clone --branch "v%LATEST_WPCLI_MAJOR%.%LATEST_WPCLI_MINOR%.%LATEST_WPCLI_REV%" https://github/wp-cli/wp-cli.git %WPCLI_INSTALL_DRIVE%\%WPCLI_INSTALL_DIR%
CHDIR /D "%WPCLI_INSTALL_DRIVE%\%WPCLI_INSTALL_DIR%"
)
IF EXIST "composer.json" call composer update --no-dev
) ELSE (
echo Latest version not found.
)
pause
本文标签: installationHow to update WPCLI on Windows via Composer
版权声明:本文标题:installation - How to update WP-CLI on Windows via Composer? 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745250439a2649792.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论