繁体   English   中英

PHP Composer - 设置供应商目录

[英]PHP Composer - set vendor directory

我在配置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问题而不是作曲家问题,但我不确定。 有人有任何想法吗? 提前致谢。

文件...

的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"
        }
    }
}

原来有一个简单的解决方案:如果您想更改供应商资产的位置,那么您必须遵循以下简单步骤:

  1. composer.json文件中包含composer-asset-plugin

     "require": { "fxp/composer-asset-plugin": "*" } 
  2. 在额外的配置中包含composer-asset-plugin指令。 在您的composer.json文件中:

     "extra": { "asset-installer-paths": { "npm-asset-library": "../../path/to/vendors/npm", "bower-asset-library": "../../path/to/vendors/bower" } } 
  3. 将供应商位置添加到composer.json文件的config部分:

     "config": { "vendor-dir": "../../path/to/vendors" } 
  4. 更新web / index.php以指向新的供应商位置:

     require(__DIR__ . '/../../../path/to/vendors/autoload.php'); require(__DIR__ . '/../../../path/to/vendors/yiisoft/yii2/Yii.php'); 
  5. 在config / web.php中包含vendorPath定义:

     'vendorPath' => '../../../path/to/vendors', 

这应该与vanilla Yii2基本模板一起使用。

这对我有用:

sudo cp -R bower-asset/* bower

只需将所有文件和文件夹从凉亭资产复制到凉亭即可。

asset-installer-paths指令属于Composer插件fxp/composer-asset-plugin 该插件是必需的,以使该指令起作用。 但似乎您不是在项目回购或全球范围内要求它。

尝试全局安装:

composer global require "fxp/composer-asset-plugin:~1.0"

Docu - 安装

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM