【问题标题】:Dart SassBuilder cannot find LoggerDart SassBuilder 找不到 Logger
【发布时间】:2018-08-26 07:47:29
【问题描述】:

我正在尝试运行一个有角度的网络应用程序。我已经克隆了确认的工作项目,但是当我运行 pub get 时出现以下错误:

/usr/lib/dart/bin/pub get
Resolving dependencies...
Got dependencies!
Precompiling dependencies...
Loading source assets...
Loading angular, sass_builder and dart_to_js_script_rewriter transformers...
Error on line 26, column 5 of ../../.pub-cache/hosted/pub.dartlang.org/angular_components-0.8.0/pubspec.yaml: Error loading transformer: 'package:sass_builder/sass_builder.dart': malformed type: line 34 pos 20: cannot resolve class 'Logger' from 'SassBuilder'
  final _log = new Logger('sass_builder');
                   ^


    outputExtension: .scss.css
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
Process finished with exit code 0

我的pub.yaml

name: ZwinnexD
description: A web app that is a web app
version: 0.21.37
#homepage: https://www.example.com
#author: Kod Schrödingera <email@example.com>

environment:
  sdk: '>=1.24.0 <2.0.0'

dependencies:
  angular: ^4.0.0
  angular_components: ^0.8.0
  firebase: ^4.0.0

dev_dependencies:
  angular_test: ^1.0.0
  browser: ^0.10.0
  dart_to_js_script_rewriter: ^1.0.1
  test: ^0.12.0

transformers:
- angular:
    entry_points:
      - web/main.dart
      - test/**_test.dart
- test/pub_serve:
    $include: test/**_test.dart
- dart_to_js_script_rewriter

# Uncomment the following in sdk 1.24+ to make pub serve
# use dartdevc (webdev.dartlang.org/tools/dartdevc).
#web:
#  compiler:
#    debug: dartdevc

我正在使用 dart 1.24.3。
我尝试过删除 pub-cache,进行缓存修复,甚至重新安装 Dart。没有什么帮助。我在 Ubuntu 16.04 上工作。请帮忙。

我还可以确认 WebStorm 的基本项目也不起作用。我不确定除了卸载和安装 dart 还能做什么......

【问题讨论】:

  • 我在 webstorm 上创建一个新的 angulardart 项目时遇到了完全相同的问题
  • 在 gitlab 管道(docker google/dart image)中遇到同样的问题,但是在语言环境(Windows)中没有这个问题
  • 我在更新最新的 Angular 包版本时也遇到了同样的问题。
  • 这是一个已知的错误并已修复,但据我所知尚未发布

标签: dart angular-dart dart-pub


【解决方案1】:

到目前为止,我发现在 pub-cache 中编辑 SassBuilder 类可以解决问题。您只需要从此更改记录器的导入

import 'package:logging/logging.dart';

对此:

import 'package:logging/logging.dart' as Log;

并从这里更改记录器构造函数:

final _log = new Logger('sass_builder');

到这里:

final _log = new Log.Logger('sass_builder');

我现在不知道更好的解决方案。

【讨论】:

  • 我确认此更改可以解决问题。不幸的是,这显然不是要走的路……:(
【解决方案2】:

这是 sass-builder 中的问题。要修复它,请在 pubspec.yaml 中使用sass_builder: ^1.1.5 或更高版本。这是pull request 修复。

【讨论】:

    【解决方案3】:

    同时,您可以将sass 1.0.0-beta.5.3 添加到pubspec.yaml 并运行pub get

    dependency_overrides:
       sass: 1.0.0-beta.5.3
    

    【讨论】:

      猜你喜欢
      • 2017-02-24
      • 1970-01-01
      • 1970-01-01
      • 2018-10-19
      • 2021-02-02
      • 2020-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多