New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

postcss-polymer-loader

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

postcss-polymer-loader

PostCSS-Polymer loader for Webpack

latest
Source
npmnpm
Version
0.1.1
Version published
Maintainers
1
Created
Source

PostCSS - Polymer Loader

Greenkeeper badge

GitHub release Build Status Coverage Status XO code style postcss-polymer-loader

PostCSS Webpack loader for Polymer elements. Works in combination with the awesome wc-loader.

Install

yarn add --dev postcss-polymer-loader

Setup configurations

Add the postcss configuration file:

postcss.config.js

NOTE: you need to add these (or other) plugins as project dependencies.

module.exports = {
  parser: 'sugarss',
  plugins: {
    'postcss-import': {},
    'postcss-cssnext': {},
    'autoprefixer': {},
    'cssnano': {}
  }
}

Add the loader to your webpack config:

webpack.config.js


module.exports = {
  module: {

    ...

    rules: [

      ...

      {
        test: /\.js$/,
        use: ['babel-loader']  // For ES6 `import`
      }, {
        test: /\.html$/,
        use: ['wc-loader', 'postcss-polymer-loader']
      }
    ]

    ...

  }
}

Setup project

As stated, this loader needs an HTML loader and precisely the wc-loader to load Web Components. More specifically we are talking about Polymer elements.

NOTE: since the wc-loader works well with the Polymer 2.x version, the example will be written in Polymer 2 sintax, but the loader should work also with Polymer 1.x.

Folder structure (example)

|– src
| |– awesome-component
| | |– index.js
| | |- template.html
| | |- style.postcss
| |
| |- global-style.postcss
| |- main-entry.js
|
|– postcss.config.js
|– webpack.config.js

awesome-component/template.html (example)


<!-- This should be resolved by the `wc-loader` -->
<link rel="import" src="./path/to/polymer.html">

<dom-module id="awesome-component">
  <postcss src="./../global-style.postcss"></postcss>
  <postcss src="./style.postcss"></postcss>
  <template>
    <div class="TestDivOne"></div>
    <div class="TestDivTwo"></div>
  </template>
</dom-module>

awesome-component/index.js (example)


'use strict';

// import Polymer from 'polymer'; Aaaaaaaah if we could...!

import './template.html';

class AwesomeComponent extends Polymer.Element {
  static get is() { return 'awesome-component' };
  static get properties() {
    return {
        prop1: {
        type: String,
        value: 'This is awesome!'
      }
    }
  };
};

window.customElements.define(AwesomeComponent.is, AwesomeComponent);

main-entry.js (example)


'use strict';

import './src/awesome-component';

Contribute

This is currently a POC, so if you have some ideas or better solutions just open an issue and let's talk! :+1:

License

MIT © LasaleFamine

Keywords

css

FAQs

Package last updated on 01 Oct 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts