I have the following line in my pubspec.yaml file
transformers:
- di
- polymer:
entry_points: web/index.html
di package is imported as a depency - no problem there.
When I attempt an 'Upgrade Dependencies' the following error results
No dependencies changed.
Error on line 29, column 3 of pubspec.yaml: A transformer map must have a single key: the transformer identifier.
- polymer:
^^^^^^^^^
I have looked at other examples that seems similar to mine, including https://www.dartlang.org/tools/pub/assets-and-transformers.html#specifying-transformers but is unable to correct the error.
Thanks for helping.
Remove the indentation before the transformers like
transformers:
- di
- polymer:
entry_points: web/index.html
Related
I just started learning dart.
first I created an angular2-dart based project from https://angular.io/docs/dart/latest/quickstart.html and it worked properly.
now I want to add auth0-lock dart package from https://pub.dartlang.org/packages/auth0_lock, so I modified pubspec.yaml to the following:
name: go_dart_angular2_zingchart
description: Go Dart Angular2 with ZingChart Started Kit
version: 0.0.1
environment:
sdk: '>=1.13.0 <2.0.0'
dependencies:
angular2: ^2.0.0-beta.18
browser: ^0.10.0
dart_to_js_script_rewriter: ^1.0.1
auth0_lock: ^0.1.0
transformers:
- angular2:
platform_directives:
- 'package:angular2/common.dart#COMMON_DIRECTIVES'
platform_pipes:
- 'package:angular2/common.dart#COMMON_PIPES'
entry_points: client/web/main.dart
- dart_to_js_script_rewriter
and now when I execute pub get I get the following error:
Error on line 15, column 3 of ../../../.pub-cache/hosted/pub.dartlang.org/auth0_lock-0.1.0/pubspec.yaml: Error loading transformer "dart_to_js_script_rewriter": package "dart_to_js_script_rewriter" is not a dependency.
- dart_to_js_script_rewriter
^^^^^^^^^^^^^^^^^^^^^^^^^^
since I'm new to dart and not entirely sure what I'm doing.. I have no idea how to fix this :)
any ideas ?
thanks!
I get the same error when adding auth0_lock: ^0.1.0 to my dependencies and running pub get. The error message says that "dart_to_js_script_rewriter" is not a dependency in the pubspec.yaml of the auth0_lock package. It looks like it's added under dev_dependecies if you look here. Dev dependencies of any dependent packages are ignored. Pub only gets your package’s dev dependencies.
So I think this is a problem in their package.
So, what I did was I went to https://github.com/andresaraujo/auth0_lock.dart and cloned the package, added it into my own project root in a directory called auth0_lock. And then, in my pubspec.yaml i put:
auth0_lock:
path: auth0_lock
After that I can import it using
import 'package:auth0_lock/auth0_lock.dart';
I have found Migration guide (https://www.polymer-project.org/1.0/docs/migration.html). My Dart project does not use bower but pubspec.yaml and when I changed dependencies version for PaperElements I get message: paper_elements has no versions that match >=1.0.0
environment:
sdk: '>=0.8.10+6 <2.0.0'
dependencies:
browser: '>=0.10.0+2'
code_transformers: any
core_elements: '>=0.6.0'
dnd: any
logging: '>=0.9.3'
paper_elements: '>=1.0.0'
polymer: any
polymer_intl: any
vector_math: any
transformers:
- polymer:
entry_points:
web/index.html
inline_stylesheets:
packages/polymer/src/build/log_injector.css: false
- $dart2js:
minify: true
How to upgrade?
update
https://pub.dartlang.org/packages/polymer_elements
(ignore the deprecated comment in the readme)
original
There are no 1.0 elements for Dart yet.
This is work in progress and before they are not published there is no way to use them the way you did previously.
You can use the Polymer.js elements in the meantime of course but then you have to use bower and dart-js-interop.
I am trying to get packages from the PUB with the following:
name: 'ch_padart'
version: 0.0.1
dependencies:
angular: "1.1.0"
angular_node_bind: any
polymer: ">=0.15.5+2 <0.16.0"
core_elements: ">=0.6.0+4 <0.7.0"
paper_elements: ">=0.6.1 <0.7.0"
web_components: ">=0.9.0 <0.11.0"
browser: ">=0.10.0+2 <0.11.0"
dev_dependencies:
unittest: ">=0.11.0+5 <0.12.0"
mock: ">=0.11.0+2 <0.12.0"
transformers:
- angular:
html_files:
- web/index.html
- polymer:
entry_points: web/index.html
lint: false
but the end result is always 'Connection closed before full header was received'
If you remove angular OR polymer (and elements) and then run pub get, there is no issue and all download and runs fine. No other warnings are displayed and --verbose yields nothing helpful that I can see.
When you run pub get -v from command line you will see that pub is working quite hard but can't find a compatible set of dependencies. There was a similar issue recently that the I guess the collection package was required in different dependencies with non-overlapping version constraints.
This is quite common when using Angular with Polymer.
You might need to investigate the dependencies manually to find the cause.
Maybe you get some feedback from pub get when you remove all dependency constraints and then start adding them again one by one.
the pubviz packages helps to resolve this kind of issue as well: https://pub.dartlang.org/packages/pubviz
I have a dart project using polymer. When I call pub build or select "Run as JavaScript" on web/index.html the generated build/web/index.html has the following line at the end:
<script src="index.html_bootstrap.dart.js" async=""></script>
But I can't find index.html_bootstrap.dart.js anywhere.
From my pubspec.yaml:
dependencies:
browser: 'any'
core_elements: '>=0.6.0+4 <0.7.0'
paper_elements: '>=0.6.1 <0.7.0'
polymer: '>=0.15.5 <0.16.0'
polymer_expressions: '>=0.13.0+1 <0.14.0'
transformers:
- $dart2js:
$include: lib/*.dart
csp: true
- polymer:
entry_points: web/index.html
csp: true
How and when is index.html_bootstrap.dart.js generated?
AFAIR this script selects if Dart or JS source should be loaded but pub build doesn't support Dart ouput for client code yet.
I think this transformer removes this tag https://pub.dartlang.org/packages/dart_to_js_script_rewriter (didn't try it myself yet)
This is caused by $dart2js transformer, remove this transformer and then build again.
dependencies:
browser: 'any'
core_elements: '>=0.6.0+4 <0.7.0'
paper_elements: '>=0.6.1 <0.7.0'
polymer: '>=0.15.5 <0.16.0'
polymer_expressions: '>=0.13.0+1 <0.14.0'
transformers:
- polymer:
entry_points: web/index.html
csp: true
or put $dart2js after polymer transformer:
dependencies:
browser: 'any'
core_elements: '>=0.6.0+4 <0.7.0'
paper_elements: '>=0.6.1 <0.7.0'
polymer: '>=0.15.5 <0.16.0'
polymer_expressions: '>=0.13.0+1 <0.14.0'
transformers:
- polymer:
entry_points: web/index.html
csp: true
- $dart2js:
$include: web/index.html_bootstrap.dart
Now that pub build supports building Polymer apps, how do I pass multiple entry_points to the Polymer transformer in my pubspec.yaml file?
When I try to build with this syntax both files have errors:
transformers:
- polymer:
entry_points: web/reports.html, web/index.html
And when I try passing them in the following manner, only the last listed entry point is built:
transformers:
- polymer:
entry_points: web/index.html
entry_points: web/reports.html
In YAML, a sequence is created by wrapping a comma separated list in square brackets [ 0, 1, 2, ] or by putting each entry on a line by itself prepended by a hyphen - So your example would look like this:
transformers:
- polymer:
entry_points: [ web/index.html, web/reports.html ]
Or this:
transformers:
- polymer:
entry_points:
- web/index.html
- web/reports.html