我在配置Yii2应用程序的供应商路径时遇到问题。我在从Yii2基本应用程序模板获得的composer.json文件中添加了几行。我想做的就是更改我的供应商资产的位置。
下面是我对文件所做的更改,但我得到了这个错误:
The file or directory to be published does not exist: /path/to/app/vendor/bower/jquery/dist
- 但是**我希望将该特定资产发布到:
/path/to/vendors/bower/jquery/dist
不管我做什么,我仍然得到这个错误消息。我怀疑这是Yii2的问题,而不是 composer 的问题,但我不确定。有人有什么主意吗?先谢谢你了。
文件...
index.php
// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');
require('/path/to/vendors/autoload.php');
require('/path/to/vendors/yiisoft/yii2/Yii.php');
$config = require(__DIR__ . '/../config/web.php');
(new yii\web\Application($config))->run();
composer.json
{
"name": "yiisoft/yii2-app-basic",
"description": "Yii 2 Basic Project Template",
"keywords": ["yii2", "framework", "basic", "project template"],
"homepage": "http://www.yiiframework.com/",
"type": "project",
"license": "BSD-3-Clause",
"support": {
...
},
"minimum-stability": "dev",
"config": {
"process-timeout": 1800,
"vendor-dir": "/path/to/vendors"
},
"require": {
"fxp/composer-asset-plugin": "~1.0",
...
},
"extra": {
"asset-installer-paths": {
"npm-asset-library": "../../includes/vendors/npm",
"bower-asset-library": "../../includes/vendors/bower"
}
}
}
4条答案
按热度按时间dkqlctbz1#
其实有一个很简单的解决办法:如果要更改供应商资产的位置,则必须执行以下简单步骤:
1.在
composer.json
文件中包含composer-asset-plugin1.在额外的配置中包含composer-asset-plugin指令。在composer.json文件中:
1.将供应商位置添加到composer.json文件的config部分:
1.更新web/index.php以指向新的供应商位置:
1.在config/web.php中包含vendorPath定义:
这应该与vanilla Yii 2基本模板一起工作。
0ejtzxu12#
这对我很有效:
只需将所有文件和文件夹从bower-asset复制到bower。
noj0wjuj3#
asset-installer-paths
指令属于Composer插件fxp/composer-asset-plugin
。该插件是必需的,此指令的工作.但是看起来你并没有在你的项目仓库或全局中要求它。尝试全局安装:
Docu -安装
ogq8wdun4#
这个问题来了,因为旧的资产插件安装文件在
vendor/bower
和vendor/npm
,但由于 composer 不再需要这个插件,并安装在vendor/bower-assets
和vendor/npm-assets
下面。在配置中只需要以下几行
这改变了您的资产查找@bower和@npm目录的位置。在此更改之后,您可以完全从require块中删除
composer-asset-plugin
,并从extras块中删除asset-installer-paths
。**额外奖励:**如果您想移动整个供应商目录,可以添加
修改vendor-path到任何你喜欢的地方。请记住将composer.json也移动到此目录,或者考虑在composer配置中更改vendor-dir