【问题标题】:Yii2 Asset ConvertorYii2 资产转换器
【发布时间】:2020-10-12 14:06:31
【问题描述】:

我正在尝试在我的 Yii2 应用程序中使用 Less。 我使用高级应用程序,并希望使用 yii2 内置的资产转换器转换我在前端/web/css 中的 .less 文件。

'assetManager' => [
      'bundles' => [
            'yii\bootstrap\BootstrapAsset' => [                     
                 'css' => []
            ],

        ],
     'converter' => [
         'class' => 'yii\web\AssetConverter',
         'commands' => [
            'less' => ['css', 'lessc {from} {to} --no-color'],

         ],
        ],
    ],

以上在我的 main.php 配置文件中。

    class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/site.less',
       'css/superhero.less',
    ];
    public $js = [
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}

以上是appAsset文件。

但是如何在我的 yii2 安装中安装 less 工具呢?我将 less-1.7.5.js 放在了我的 yii 控制台引导文件所在的根文件夹中,但是我必须在哪里调整配置才能转换 less 文件?

提前谢谢!

【问题讨论】:

    标签: php less yii2


    【解决方案1】:

    我刚刚在我的项目中做了什么:

    main.php 配置文件:

        'assetManager' => [
            'converter' => [
                'class' => 'yii\web\AssetConverter',
                'commands' => [
                    'less' => ['css', 'nodejs "' . PROTECTED_BASE_PATH . 
                        '/node_modules/less/bin/lessc" {from} {to} --no-color'],
                ],
            ],
        ],
    

    命令行(在子目录中,上面用PROTECTED_BASE_PATH表示):

    $ npm install less
    

    就是这样。在另一台机器上 git pull 后它工作正常。

    当然,nodejs本身必须全局安装。

    重要提示。 这是将 nodejs 包保存在 VCS 中的不寻常方式(尽管我有理由这样做)。考虑改用 package.json。

    【讨论】:

      【解决方案2】:

      要在项目中安装 less 编译器 (lessc),请使用 composer 命令:

      composer require bower-asset/less
      

      然后添加到配置中:

      'assetManager' => [
          'converter' => [
              'class' => 'yii\web\AssetConverter',
              'commands' => [
                  'less' => ['css', '@bower/less/packages/less/bin/lessc {from} {to} --no-color'],
              ],
          ],
      ],
      

      当您没有 root 权限并且无法全局安装 lessc 时,此配置对于共享主机很有帮助。

      【讨论】:

      • 将上面的路径更改为:@bower/less/packages/less/bin/lessc,这在我的 Wampserver 上对我有用。测试 Yiipowered。谢谢安东。
      【解决方案3】:

      安装更少的转换器:服务器端和命令行使用 http://lesscss.org/usage/

      并确保命令在任何地方都可以作为 lessc 使用,即添加到 PATH

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-09
        • 2016-04-30
        • 2016-01-04
        • 1970-01-01
        相关资源
        最近更新 更多