php – 使用Composer在生产时安装npm和bower软件包(即没有devDependencies)
发布时间:2020-05-25 10:57:21 所属栏目:PHP 来源:互联网
导读:在我的composer.json文件中,我在脚本部分中有以下内容: post-install-cmd: [ php artisan clear-compiled, php artisan optimize, npm install, bower install ] 当运行“composer install”
|
在我的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,但是会让你找到你想要的东西."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}");
您可以使这个例子更加健壮,甚至为它创建一个工匠指令. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
