generator-polymer 0,0,0,0,0,0,5 editorconfig travis-ci npm

Scaffold out a Polymer project

npm version npm downloads Build Status Dependency Status

Deprecation warning

We encourage you to take a look at Polymer CLI which contains many of the same features as this generator and has a larger team supporting it. We plan to deprecate and eventually remove this project from GitHub and direct all future support toward Polymer CLI. The good news is it uses Yeoman under the hood so I’ll see you there!

Yeoman generator for Polymer projects


Polymer is a library of polyfills and sugar which enable the use of Web Components in modern browsers. The project allows developers to build apps using the platform of tomorrow and inform the W3C of places where in-flight specifications can be further improved.

generator-polymer provides Polymer scaffolding using Yeoman (a scaffolding tool for the web), letting you easily create and customize Polymer (custom) elements via the command-line and import them using HTML Imports. This saves you time writing boilerplate code so you can start writing up the logic to your components straight away.



This generator clones Polymer Starter Kit and seed-element. If you’re having issues with the template files generated for those projects, please raise them on those repos as they are the canonical source.


Install the generator npm install -g generator-polymer

Make a new directory and cd into it mkdir -p my-project && cd $_

Scaffold a new Polymer project: yo polymer


Available generators:

Note: Generators are to be run from the root of your app


Sets up a new Polymer app, generating all the boilerplate you need to get started.


yo polymer

Element (alias: El)

Generates a polymer element in app/elements and optionally appends an import to app/elements/elements.html.


yo polymer:element my-element

# or use the alias

yo polymer:el my-element

Note: You must pass in an element name, and the name must contain a dash “-”

One can also include element dependencies to be imported. For instance, if you’re creating a fancy-menu element which needs to import paper-button and paper-checkbox as dependencies, you can generate the file like so:

yo polymer:el fancy-menu paper-button paper-checkbox


--docs, include iron-component-page docs with your element and demo.html
--path, override default directory structure, ex: --path foo/bar will put your element in app/elements/foo/bar


Generates a reusable polymer element based on the seed-element workflow. This should only be used if you’re creating a standalone element repo that you intend to share with others via bower. If you’re just building a Polymer app, stick to the Element generator.

To preview your new element you’ll want to use the polyserve tool.


mkdir -p my-foo && cd $_
yo polymer:seed my-foo


Generates a Github pages branch for your seed-element.

This requires that you have SSH keys setup on GitHub.

Windows users will need to have Git Bash installed

If your documentation or demo pages have dependencies declared as devDependencies in bower.json, they will be included in your GitHub pages branch.


cd my-foo
yo polymer:gh

If, for some reason, you don’t want the devDependencies, use the --nodevdeps option.

Github Enterprise

Github Enterprise instances require a custom hostname to be defined. Use the --hostname option.


cd my-foo
yo polymer:gh --hostname


The project generated by yo polymer contains support for web-component-tester. The following commands are included:

Run local tests (in terminal):

gulp test:local

Run remote tests with SauceLabs:

gulp test:remote

See the web-component-tester readme for configuration options.


The elements.html file

The app generator will produce an elements.html file where you can place your imports. This file will be vulcanized when you run the default gulp task. You’ll want to make sure that elements.html is the only import in your index.html file, otherwise there’s a good chance you’ll accidentally load Polymer twice and break the app.


See the contributing docs

When submitting an issue, please follow the guidelines. Especially important is to make sure Yeoman is up-to-date, and providing the command or commands that cause the issue.


BSD license

Related Repositories



Scaffold out a Polymer project ...



Yeoman generator for modular AngularJS apps with Gulp and optional Polymer support ...



Yeoman generator to create Custom Elements using Polymer, X-Tag or VanillaJS ...



Slush generator to create Custom Elements using Polymer, X-Tag or VanillaJS ...



A Polymer CLI generator for creating custom build processes with polymer-build ...

Top Contributors

robdodson addyosmani sindresorhus arthurvr samccone nevir kevva passy ragingwind hemanth jshcrowthe zenorocha germ13 peterblazejewicz andybons abdonrd alexpaluzzi hubgit MasterAM 1000ch appleboy cvrebert davej eddiemonge VandeurenGlenn beriberikix ArmlessJohn404 moderndeveloperllc wibblymat mateusortiz


package version
chalk ^1.0.0
html-wiring ^1.2.0
js-beautify ^1.5.10
lodash ^4.0.0
mkdirp ^0.5.1
ncp ^2.0.0
rimraf ^2.2.8
validate-element-name ^1.0.0
yeoman-generator ^0.22.3
yosay ^1.0.0
dev fs-extra *
jshint *
mocha *
yeoman-assert ^2.1.1
yeoman-test ^1.0.0


-   v1.2.10 zip tar
-   v1.2.9 zip tar
-   v1.2.8 zip tar
-   v1.2.7 zip tar
-   v1.2.6 zip tar
-   v1.2.5 zip tar
-   v1.2.4 zip tar
-   v1.2.3 zip tar
-   v1.2.2 zip tar
-   v1.2.1 zip tar
-   v1.2.0 zip tar
-   v1.1.0 zip tar
-   v1.0.5 zip tar
-   v1.0.5-rc1 zip tar
-   v1.0.4 zip tar
-   v1.0.3 zip tar
-   v1.0.2 zip tar
-   v1.0.1 zip tar
-   v1.0.0 zip tar
-   v0.7.2 zip tar
-   v0.7.1 zip tar
-   v0.7.0 zip tar
-   v0.6.3 zip tar
-   v0.6.2 zip tar
-   v0.6.1 zip tar
-   v0.6.0 zip tar
-   v0.5.1 zip tar
-   v0.5.0 zip tar
-   v0.4.1 zip tar
-   v0.4.0 zip tar