在我的composer.json文件中,我在脚本部分中有以下内容:
"post-install-cmd": [ "PHP artisan clear-compiled","PHP artisan optimize","npm install","bower install" ]
当运行“composer install”时,这将导致npm和bower安装所有的依赖项,默认情况下包括devDependencies.当涉及到生产部署(例如“composer install –no-dev”时,我想启动“npm install -production”和“bower install -production”)
据我所知,根据传递的标志,似乎没有办法更改指定为’post-install-command’的列表,或者是设置变量的方法,然后可以将其传递给post -install-CMD.
我错过了什么吗?使用composer似乎不可能只使用配置进行dev和production安装.我真的必须在制作时使用composer install –no-scripts,然后自己手动运行所有四个命令?这似乎有点笨拙.
您可以随时使用PHP对您进行环境检测,然后从同一脚本安装其他依赖项.这不是很好,很干净,比如在安装后的cmd中包括npm和bower,但是会让你找到你想要的东西.
原文链接:https://www.f2er.com/php/130518.html"post-install-cmd": [ "PHP artisan clear-compiled","PHP path/to/installer.PHP" ]
示例installer.PHP:
// Logic to determine the environment. This could be determined many ways,and depends on how your // application's environment is determined. If you're making use of Laravel's environment // capabilities,you could do the following: $env = trim(exec('PHP artisan env')); // Clean up response to get the value we actually want $env = substr($env,strrpos($env,' ') + 1); $envFlag = ($env === 'production') ? '--production' : ''; // Install npm passthru("npm install {$envFlag}"); // Install bower passthru("bower install {$envFlag}");
您可以使这个例子更加健壮,甚至为它创建一个工匠指令.