Python libsass sass.complie() not compiling sass



我有一个问题,让libsass编译SASS文件。我可以让它编译SCSS文件。

我有一个Flask应用,我已经安装了libsass,我正在使用libsass绑定sass。它工作得很好,但缺少一些功能——它不能编译SASS,但可以编译SCSS。我是这样做的:

在application .py文件中有

from flask import Flask
import sass
app = Flask(__name__)
@app.route('/')
def hello_world():
    return 'Hello World!'
if __name__ == '__main__':
    sass.compile(dirname=('client/sass', 'client/css'), source_comments=True)
    app.run()

我的两个测试文件是test_scss.scss,它可以工作:

$font-stack:    Helvetica, sans-serif;
$primary-color: #333;
body {
  font: 100% $font-stack;
  color: $primary-color;
}

test_sass.sass:

$font-stack:    Helvetica, sans-serif
$primary-color: #333
body
  font: 100% $font-stack
  color: $primary-color

文档说sass.complie可以采取SASS代码,但我只能让它采取SCSS代码。也就是说,当我运行应用程序时,只有.scss文件被编译为CSS。sass.compile运行后,我的应用程序的目录结构是:

  • 客户端
    • css
      • app.css
      • testrongcss.css
    • 自由>
    • sass
      • testrongass.sass
      • testrongcss.scss
  • 服务器
      <
    • 模板/gh>
    • application.py

有人建议我把SASS文件重命名为.scss扩展名。像test_sass.scss:'

$font-stack:    Helvetica, sans-serif
$primary-color: #333
body
  font: 100% $font-stack
  color: $primary-color

然而,当我这样做时,我只得到以下错误:

src/web-internal/server/applicaiton.py", line 8, in <module>
    sass.compile(dirname=('client/sass', 'client/css'), source_comments=True)
  File "/usr/local/lib/python3.4/site-packages/sass.py", line 516, in compile
    raise CompileError(v)
sass.CompileError: b"Error: top-level variable binding must be terminated by ';'n        on line 2 of src/web-internal/server/../client/sass/test_sass.scssn>> $primary-color: #333n   ^n"

我希望使用SASS,而不希望满足于SCSS。有人有什么建议吗?我觉得在sass文档中有一些东西我没有理解。

我从来没有得到这个工作与sass.compile,但我找到了一个工作。

...
if __name__ == '__main__':
    # Start sassc with --watch
    sass_cmd = subprocess.Popen(['sass', '--watch', 'client/sass' + ':' + 'client/css'])
    ... 

Python libsass包的compile()方法支持indented kwarg来告诉编译器给定的输入是缩进的。sass还是用大括号括起来的。scss。

如果你使用缩进的。sass作为输入,就像这样使用:

indented_sass_string = """
$font-stack:    Helvetica, sans-serif
$primary-color: #333
body
  font: 100% $font-stack
  color: $primary-color
"""
css = sass.compile(string=indented_sass_string, indented=True)

我假设如果您传递整个目录,这将工作。我不确定如果你尝试编译一个包含。sass和。scss文件的整个目录会发生什么。

参见文档:https://sass.github.io/libsass-python/sass.html#sass.compile

如果您想编译任何文件,那么您可以这样做

import sass
sass.compile(dirname=("client/sass", "client/css"))

libsass-python文档。

相关内容

  • 没有找到相关文章

最新更新