首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python webassets编译Bootstrap 4 scss?

如何使用python webassets编译Bootstrap 4 scss?
EN

Stack Overflow用户
提问于 2018-03-18 10:36:49
回答 1查看 300关注 0票数 0

我试图简单地用python webassets编译Bootstrap 4,但没有成功。现在,我只是尝试在bootstrap/scss目录中执行此操作,因此路径问题不是什么大问题。在此目录中,我添加了一个包含一行的main.scss文件:

代码语言:javascript
复制
@import "bootstrap.scss";

我有一个名为test_scss.py的脚本,如下所示:

代码语言:javascript
复制
from webassets import Bundle, Environment
my_env = Environment(directory='.', url='/')
css = Bundle('main.scss', filters='scss', output='all.css')
my_env.register('css_all', css)
print(my_env['css_all'].urls())

当我运行这个命令时,我得到如下的错误跟踪:

代码语言:javascript
复制
Traceback (most recent call last):
  File "./test_scss.py", line 11, in <module>
    print(my_env['css_all'].urls())
  File "/Users/benlindsay/miniconda/lib/python3.6/site-packages/webassets/bundle.py", line 806, in urls
    urls.extend(bundle._urls(new_ctx, extra_filters, *args, **kwargs))
  File "/Users/benlindsay/miniconda/lib/python3.6/site-packages/webassets/bundle.py", line 765, in _urls
    *args, **kwargs)
  File "/Users/benlindsay/miniconda/lib/python3.6/site-packages/webassets/bundle.py", line 619, in _build
    force, disable_cache=disable_cache, extra_filters=extra_filters)
  File "/Users/benlindsay/miniconda/lib/python3.6/site-packages/webassets/bundle.py", line 543, in _merge_and_apply
    kwargs=item_data)
  File "/Users/benlindsay/miniconda/lib/python3.6/site-packages/webassets/merge.py", line 276, in apply
    return self._wrap_cache(key, func)
  File "/Users/benlindsay/miniconda/lib/python3.6/site-packages/webassets/merge.py", line 218, in _wrap_cache
    content = func().getvalue()
  File "/Users/benlindsay/miniconda/lib/python3.6/site-packages/webassets/merge.py", line 251, in func
    getattr(filter, type)(data, out, **kwargs_final)
  File "/Users/benlindsay/miniconda/lib/python3.6/site-packages/webassets/filter/sass.py", line 196, in input
    self._apply_sass(_in, out, os.path.dirname(source_path))
  File "/Users/benlindsay/miniconda/lib/python3.6/site-packages/webassets/filter/sass.py", line 190, in _apply_sass
    return self.subprocess(args, out, _in, cwd=child_cwd)
  File "/Users/benlindsay/miniconda/lib/python3.6/site-packages/webassets/filter/__init__.py", line 527, in subprocess
    proc.returncode, stdout, stderr))
webassets.exceptions.FilterError: scss: subprocess returned a non-success result code: 65, stdout=b'',
stderr=b'DEPRECATION WARNING: Importing from the current working directory will
not be automatic in future versions of Sass.  To avoid future errors, you can add it
to your environment explicitly by setting `SASS_PATH=.`, by using the -I command
line option, or by changing your Sass configuration options.

Error: Invalid CSS after "...lor}: #{$value}": expected "{", was ";"
        on line 4 of /Users/benlindsay/scratch/python/webassets/test-2/bootstrap/scss/_root.scss
        from line 11 of /Users/benlindsay/scratch/python/webassets/test-2/bootstrap/scss/bootstrap.scss
        from line 1 of standard input
  Use --trace for backtrace.

如果我按照说明操作并设置了环境变量SASS_PATH=.,这就去掉了错误消息中的那部分,但我仍然得到错误

代码语言:javascript
复制
Error: Invalid CSS after "...lor}: #{$value}": expected "{", was ";"
        on line 4 of /Users/benlindsay/scratch/python/webassets/test-2/bootstrap/scss/_root.scss
        from line 11 of /Users/benlindsay/scratch/python/webassets/test-2/bootstrap/scss/bootstrap.scss
        from line 1 of standard input
  Use --trace for backtrace.

我还不太了解SCSS语法,但我敢打赌,这是我做错了什么,而不是Bootstrap SCSS中的错误。如果你认为我做错了什么,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2018-03-18 11:58:31

事实证明这实际上是Bootstrap端的一个问题。请参阅https://github.com/sass/sass/issues/2383,特别是引用:

这是我们实现中的一个错误-解析器不应该崩溃-但是这些Bootstrap样式在编写的Sass3.5中是无效的。

无论如何,我只需要更新到Ruby Sass的最新版本(显然webassets模块依赖于它),并修复了它。

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

https://stackoverflow.com/questions/49343970

复制
相关文章

相似问题

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