我试图在我的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控制台引导文件所在的根文件夹中,但是我必须在哪里调整配置以转换较少的文件?
提前谢谢!答案 0 :(得分:0)
安装较少的转换器:服务器端和命令行使用 http://lesscss.org/usage/
并确保命令在任何地方都可以作为lessc使用,即添加到PATH
答案 1 :(得分:0)
我刚在项目中做了什么:
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拉到另一台机器上之后它工作正常。
当然,nodejs本身必须全局安装。
重要说明。这是将nodejs包装保存在VCS中的一种不寻常的方法(尽管我有理由这样做)。请考虑使用package.json。
答案 2 :(得分:0)
要使用composer命令安装较少的编译器(lessc):
composer require bower-asset/less
然后添加到config:
'assetManager' => [
'converter' => [
'class' => 'yii\web\AssetConverter',
'commands' => [
'less' => ['css', '@bower/less/bin/lessc {from} {to} --no-color'],
],
],
],
当您没有root权限且无法全局安装lessc时,此配置对共享主机很有帮助。