求助:Drupal 8执行drush en <Module_Name>无法下载启用模块且弹出.launcher文件窗口
我之前帮不少开发者解决过类似的Drush问题,结合你描述的情况(Mac正常、Windows系统出现弹窗),大概率是系统文件关联错误或者Drush环境配置的问题,给你几个针对性的解决步骤:
检查Drush的基础环境配置
先确认Drush是否能正常运行,打开终端执行drush --version,如果能输出正确的版本号,说明基础环境没问题;如果报错或者没反应,那大概率是Drush的路径没加入系统环境变量,你需要把Drush的安装路径(比如Composer安装的vendor/bin目录)添加到系统PATH中。修复.launcher文件的关联程序
Windows系统会错误地把Drush的部分脚本识别为.launcher类型文件,导致弹出选择应用的窗口。你可以右键点击任意一个.launcher文件(如果找不到,可临时创建一个空文件改后缀),选择「打开方式」→「选择其他应用」,找到你的PHP可执行文件(通常在XAMPP/WAMP的bin/php目录下),勾选「始终使用此应用打开.launcher文件」后点击确定。这样系统就会用PHP来执行这类文件,而不是弹窗让你选择应用。直接通过PHP调用Drush(绕过文件关联)
如果上面的关联修复没用,你可以直接指定用PHP来运行Drush:- 如果你用的是Drush Phar包,执行
php /path/to/drush.phar en <Module_Name> - 如果是Composer安装的Drush,Windows下执行
vendor/bin/drush.bat en <Module_Name>,这样绕开系统的文件关联判断,直接让PHP处理Drush命令。
- 如果你用的是Drush Phar包,执行
验证Drush与Drupal 8的兼容性
确保你使用的Drush版本和Drupal 8匹配:Drupal 8对应的Drush版本是9.x或10.x,如果你用了Drush 11及以上版本,会出现兼容性问题。执行drush --version确认版本,不兼容的话可以通过Composer降级,比如执行composer require drush/drush:^10。
内容的提问来源于stack exchange,提问作者clestcruz

