首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii2编写器在bower和bower供应商中管理包

Yii2编写器在bower和bower供应商中管理包
EN

Stack Overflow用户
提问于 2016-01-19 09:03:26
回答 3查看 2.1K关注 0票数 0

我使用yii2已经有一段时间了,但是我无法思考如何管理我的包。在这方面,我有两个问题。

  1. 当我向yii2添加一个包时,它是从供应商/保龄人/保龄人-资产中下载的。
  2. 当yii2发布包时,它会查找供应商/bower下的资产

我该怎么解决这个问题。我为不同的项目安装了许多yii2,每次我似乎都会遇到相同的问题。

这是我的composer.json文件

代码语言:javascript
复制
{
    "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": {
        "issues": "https://github.com/yiisoft/yii2/issues?state=open",
        "forum": "http://www.yiiframework.com/forum/",
        "wiki": "http://www.yiiframework.com/wiki/",
        "irc": "irc://irc.freenode.net/yii",
        "source": "https://github.com/yiisoft/yii2"
    },
    "minimum-stability": "stable",
    "require": {
        "php": ">=5.4.0",
        "yiisoft/yii2": ">=2.0.5",
        "yiisoft/yii2-bootstrap": "*",
        "yiisoft/yii2-swiftmailer": "*",
        "dektrium/yii2-user": "0.9.*@dev"
    },
    "require-dev": {
        "yiisoft/yii2-codeception": "*",
        "yiisoft/yii2-debug": "*",
        "yiisoft/yii2-gii": "*",
        "yiisoft/yii2-faker": "*"
    },
    "config": {
        "process-timeout": 1800
    },
    "scripts": {
        "post-create-project-cmd": [
            "yii\\composer\\Installer::postCreateProject"
        ]
    },
    "extra": {
        "yii\\composer\\Installer::postCreateProject": {
            "setPermission": [
                {
                    "runtime": "0777",
                    "web/assets": "0777",
                    "yii": "0755"
                }
            ],
            "generateCookieValidationKey": [
                "config/web.php"
            ]
        },
        "asset-installer-paths": {
            "npm-asset-library": "vendor/npm",
            "bower-asset-library": "vendor/bower"
        }
    }
}

见下面我的AppAsset文件

代码语言:javascript
复制
class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/site.css',
    ];
    public $js = [
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-01-19 10:56:34

这可以通过覆盖bower包的默认别名路径来存档,即@vendor/bower到@bower/bower/bower-asset。

这可以通过web.php文件在$config=下完成[]

代码语言:javascript
复制
 'aliases' => [
        '@bower' => '@vendor/bower/bower-asset',
    ],

当你回音

代码语言:javascript
复制
echo Yii::getAlias('@bower');

它应该会回音

代码语言:javascript
复制
/Library/WebServer/Documents/project-name/vendor/bower/bower-asset
票数 1
EN

Stack Overflow用户

发布于 2016-01-20 05:51:41

我刚才面对这个问题,它把我逼疯了!

解决方案实际上很简单(不是总是这样吗?)--您需要删除编写器公共目录中的fxp目录,并清除编写器缓存-- composer global clearcache --并从全局composer.json中删除fxp插件行并重新要求它。

不管我做了什么,保龄球包都是安装在供应商/保龄球/保龄球资产或其他奇怪的地方。

帮助我的解决方案是摆脱fxp插件并重新要求它。试试看。

Composer的资产插件是错误的,但很有用。

希望这会有帮助!)

编辑:您面临的问题仅仅是Composer资产插件拒绝解析composer.json文件中明确定义的资产安装路径。在我自己的项目中测试了这个行为之后,我创建了一个“香草”基本应用程序,甚至一个高级应用程序:相同的行为。所以,我重新要求/重新安装了资产插件并修复了它。

票数 1
EN

Stack Overflow用户

发布于 2016-01-19 10:19:39

我们就是这样登记战利品资产的。

代码语言:javascript
复制
namespace backend\assets;


use yii\web\AssetBundle;

class BootstrapAsset extends AssetBundle
{
    public $sourcePath = '@bower/bootstrap/dist';
    public $js         = [
        'js/bootstrap.min.js',
    ];
}

并将此资产在布局中注册为:

代码语言:javascript
复制
$asset     = AppAsset::register($this);
$bootstrap = \backend\assets\BootstrapAsset::register($this);

希望这能给你一个提示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34872504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档