如何在Heroku上编译Yii 2.0.10中的资产?错误:要发布的文件或目录不存在:/ tmp / build_6de7 / vendor / bower / jquery / dist

时间:2017-01-12 04:52:20

标签: heroku yii2 composer-php

当我尝试部署到Heroku时,我收到此错误。

IsVisibleChanged

我在开发中只有remote: -----> Running 'composer compile'... remote: > php yii asset assets.php config/assets-prod.php remote: Exception 'ReflectionException' with message 'Class yii\gii\Module does not exist' remote: remote: in /tmp/build_43b5f0b03599190faf308cbb5640d75d/vendor/yiisoft/yii2/di/Container.php:422 remote:

gii
composer.json
"require-dev": { "yiisoft/yii2-gii": "*", [...] "scripts": { "compile": [ "php yii asset assets.php config/assets-prod.php"
console.php

当我将环境设置为PROD时,它在本地工作:

'bootstrap' => YII_ENV == 'dev' ? ['log', 'gii'] : ['log'],
'modules' => YII_ENV == 'dev' ? [
  'gii' => 'yii\gii\Module'
] : [],

顺便说一下,它在之前版本的Yii2中有效。

这是Yii版本2.0.10。

糟糕,我需要运行

$ YII_ENV=prod php yii asset assets.php config/assets-prod.php
[...]
Creating new bundle configuration...
Output bundle configuration created at 'config/assets-prod.php'.

但是现在它出现了一个不同的错误:

>heroku config:set YII_ENV=prod

1 个答案:

答案 0 :(得分:1)

终于开始工作了。我必须将composer-asset-plugin添加到composer.json

"require": {
    "fxp/composer-asset-plugin": "^1.2.0"

不是一个非常有用的错误消息,特别是考虑到它仍然从Bower安装了JQuery!