SASS 而不是 Odoo 9 中的 LESS

SASS instead of LESS in Odoo 9

如何在 Odoo v9 中使用 Sass 而不是 Less?

我按照 official documentation 的指导进行了非常基本的设置。它与 Less 一起工作,但我无法让它与 Sass 一起工作。在 views/assets.xml 中按预期工作:

<link href="/theme_name/static/less/style.less" rel="stylesheet" type="text/less"/>

但是当我将其更改为 scss 时:

<link href="/theme_name/static/scss/style.scss" rel="stylesheet" type="text/scss"/>

我的样式不再加载。也没有给出错误。

可能值得一提的是,我在尝试 link 键入 text/sass

时确实遇到了错误

Could not execute command 'sass'

如果您正在使用 ubuntu 并且拥有 sasslessc 的 errors/warns,等在你的 odoo 网络应用程序中, 那么你应该尝试跟随他们:-

[去除火锅]

$ sudo su     # Switch To Root Before Working ##
# rm -f /usr/bin/lessc /usr/bin/node
# apt remove node*
# cd /etc/apt/sources.list.d
# rm -f chris-lea-node_js-trusty.list *.save neurobin-ppa-trusty.list noobslab-apps-trusty.list 
# rm -f /var/cache/apt/archives/lock 
# apt-get clean

[安装所需的 Deps]

# apt-get install python-pip python-dev libevent-dev gcc libxml2-dev libxslt-dev node-less libldap2-dev libssl-dev  build-essential zlib1g-dev libssl-dev libreadline6-dev libyaml-dev python-software-properties ruby -y

[安装兼容的 NodeJs 和 lessc]

# apt-add-repository ppa:chris-lea/node.js
# apt-get update
# apt-get install nodejs

# npm install -g npm
# npm install -g less less-plugin-clean-css
# npm install -g less
# npm install -g node-less

# rm -f /etc/apt/sources.list.d/*.save /etc/apt/sources.list.d/*.log

[正在安装 Ruby > 2.0 并且需要 Sass 个宝石]

# cd /tmp
# wget http://cache.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p481.tar.gz
# tar -xvzf ruby-2.0.0-p481.tar.gz
# cd ruby-2.0.0-p481/
# ./configure --prefix=/usr/local
# make
# make install
# ruby --version     # Should be greater than 2.0

# gem install sass
# gem install bootstrap-sass
# gem install compass

[启动您的 WebApp]

# cd <path to main source code>
# python openerp-server -c openerp-server.conf

谢谢!! n 玩得开心!!

终于有时间研究这个并找出编译样式表背后的魔力。

首先SCSS语法受支持。正确的 link 或样式标签类型是 text/sasstext/less。 Odoo 确定语法的第二种方式是通过文件扩展名 .sass.less。您可以设置一个或两个,结果是相同的。见 code responsible for the magic.

其次,错误消息表明底层操作系统在其当前执行路径中没有命令sass。命令本身必须由您预先安装。

Odoo 在活动系统 PATH 中查找可执行文件 sass 并使用特定选项调用它 listed here.

有不同版本的 sass 编译器,但 Odoo 期望它是 ruby version
有关详细信息,请参阅 sass homepage 中的安装部分。

除了sass,还需要罗盘bootstrap-sassruby宝石。

您决定如何安装所有这些取决于您的操作系统、环境设置和品味,但您需要 ruby 版本 >2.0.

奖励:这就是我在 Ubutnu 14.04 中的做法。

Ubuntu 默认有 ruby 1.9。检查你用 dpkg -s ruby.
得到了什么,幸运的是有一个存储库托管它。所以让我们添加它并安装 ruby 2.3.

sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt-get update
sudo apt-get install ruby2.3 ruby2.3-dev

您还需要 -dev 包。现在用ruby -v检查你ruby的版本。

接下来您必须安装所需的 gem:

gem install sass compass bootstrap-sass --user-install

我在我的开发机器中使用选项 --user-install 将 gems 安装到我的主目录,而不是全局安装。这又取决于您的偏好和系统设置。但一般来说,用户 运行 odoo 还必须对这些 gem 具有执行权限,无论它们在哪里。