Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

css-modules use case #14

Closed
solcik opened this issue Oct 31, 2015 · 49 comments
Closed

css-modules use case #14

solcik opened this issue Oct 31, 2015 · 49 comments

Comments

@solcik
Copy link

solcik commented Oct 31, 2015

Hello,
I wanted to use your css_modules_loader_parser, and took inspiration from your pull.
https://github.com/erikras/react-redux-universal-hot-example/pull/463/files

Config

import WebpackIsomorphicToolsPlugin from 'webpack-isomorphic-tools/plugin';


// see this link for more info on what all of this means
// https://github.com/halt-hammerzeit/webpack-isomorphic-tools
const config = {
  webpack_assets_file_path: 'webpack-stats.json',

  assets: {
    images: {
      extensions: ['jpeg', 'jpg', 'png', 'gif', 'svg'],
      parser: WebpackIsomorphicToolsPlugin.url_loader_parser
    },
    fonts: {
      extensions: ['ttf', 'woff', 'woff2'],
      parser: WebpackIsomorphicToolsPlugin.url_loader_parser
    },
    svg: {
      extension: 'svg',
      parser: WebpackIsomorphicToolsPlugin.url_loader_parser
    },
    style_modules: {
      extensions: ['less', 'scss', 'sass', 'styl', 'css'],
      filter: (module, regex, options, log) => {
        if (options.development) {
          // in development mode there's webpack "style-loader",
          // so the module.name is not equal to module.name
          return WebpackIsomorphicToolsPlugin.style_loader_filter(module, regex, options, log);
        } else {
          // in production mode there's no webpack "style-loader",
          // so the module.name will be equal to the asset path
          return regex.test(module.name);
        }
      },
      path: (module, options, log) => {
        if (options.development) {
          // in development mode there's webpack "style-loader",
          // so the module.name is not equal to module.name
          return WebpackIsomorphicToolsPlugin.style_loader_path_extractor(module, options, log);
        } else {
          // in production mode there's no webpack "style-loader",
          // so the module.name will be equal to the asset path
          return module.name;
        }
      },
      // parser: WebpackIsomorphicToolsPlugin.css_loader_parser
      parser: (module, options, log) => {
        // FAIL
        // if (options.development) {
        //   return WebpackIsomorphicToolsPlugin.css_modules_loader_parser(module, options, log);
        // } else {
        //   // in production mode there's Extract Text Loader which extracts CSS text away
        //   console.log(module.source);
        //   return module.source;
        // }
        // OK
        if (module.source) {
          const regex = options.development ? /exports\.locals = ((.|\n)+);/ : /module\.exports = ((.|\n)+);/;
          const match = module.source.match(regex);
          return match ? JSON.parse(match[1]) : {};
        }
      }
    }
  }
};


export default config;

FAIL

Development:
{
  "javascript": {
    "app": "http://localhost:8082/dist/app-2a2cf7557cd6e4a3d05d.js"
  },
  "styles": {},
  "assets": {
    "./assets/index.scss": "exports = module.exports = require(\"./../node_modules/css-loader/lib/css-base.js\")();\n// imports\nexports.i(require(\"-!./../node_modules/css-loader/index.js?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!./../node_modules/autoprefixer-loader/index.js?browsers=last 2 version!./../node_modules/sass-loader/index.js?outputStyle=expanded&sourceMap=true&sourceMapContents=true!normalize.css/normalize.css\"), \"\");\nexports.i(require(\"-!./../node_modules/css-loader/index.js?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!./../node_modules/autoprefixer-loader/index.js?browsers=last 2 version!./../node_modules/sass-loader/index.js?outputStyle=expanded&sourceMap=true&sourceMapContents=true!basscss-base-reset/index.css\"), \"\");\n\n// module\nexports.push([module.id, \" {\\n  /**\\n   * React Select\\n   * ============\\n   * Created by Jed Watson and Joss Mackison for KeystoneJS, http://www.keystonejs.com/\\n   * https://twitter.com/jedwatson https://twitter.com/jossmackison https://twitter.com/keystonejs\\n   * MIT License: https://github.com/keystonejs/react-select\\n  */\\n}\\n\\n.Select {\\n  position: relative;\\n}\\n\\n.Select,\\n.Select div,\\n.Select input,\\n.Select span {\\n  box-sizing: border-box;\\n}\\n\\n.Select.is-disabled > .Select-control {\\n  background-color: #f6f6f6;\\n}\\n\\n.Select.is-disabled .Select-arrow-zone {\\n  cursor: default;\\n  pointer-events: none;\\n}\\n\\n.Select-control {\\n  background-color: #fff;\\n  border-color: #d9d9d9 #ccc #b3b3b3;\\n  border-radius: 4px;\\n  border: 1px solid #ccc;\\n  color: #333;\\n  cursor: default;\\n  display: table;\\n  height: 36px;\\n  outline: none;\\n  overflow: hidden;\\n  position: relative;\\n  width: 100%;\\n}\\n\\n.Select-control:hover {\\n  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\\n}\\n\\n.is-searchable.is-open > .Select-control {\\n  cursor: text;\\n}\\n\\n.is-open > .Select-control {\\n  border-bottom-right-radius: 0;\\n  border-bottom-left-radius: 0;\\n  background: #fff;\\n  border-color: #b3b3b3 #ccc #d9d9d9;\\n}\\n\\n.is-open > .Select-control > .Select-arrow {\\n  border-color: transparent transparent #999;\\n  border-width: 0 5px 5px;\\n}\\n\\n.is-searchable.is-focused:not(.is-open) > .Select-control {\\n  cursor: text;\\n}\\n\\n.is-focused:not(.is-open) > .Select-control {\\n  border-color: #08c #0099e6 #0099e6;\\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 0 5px -1px rgba(0, 136, 204, 0.5);\\n}\\n\\n.Select-placeholder {\\n  bottom: 0;\\n  color: #aaa;\\n  left: 0;\\n  line-height: 34px;\\n  padding-left: 10px;\\n  padding-right: 10px;\\n  position: absolute;\\n  right: 0;\\n  top: 0;\\n  max-width: 100%;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n  white-space: nowrap;\\n}\\n\\n.has-value > .Select-control > .Select-placeholder {\\n  color: #333;\\n}\\n\\n.Select-value {\\n  color: #aaa;\\n  left: 0;\\n  padding: 8px 52px 8px 10px;\\n  position: absolute;\\n  right: -15px;\\n  top: 0;\\n  max-width: 100%;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n  white-space: nowrap;\\n}\\n\\n.has-value > .Select-control > .Select-value {\\n  color: #333;\\n}\\n\\n.Select-input {\\n  height: 34px;\\n  padding-left: 10px;\\n  padding-right: 10px;\\n  vertical-align: middle;\\n}\\n\\n.Select-input > input {\\n  background: none transparent;\\n  border: 0 none;\\n  box-shadow: none;\\n  cursor: default;\\n  display: inline-block;\\n  font-family: inherit;\\n  font-size: inherit;\\n  height: 34px;\\n  margin: 0;\\n  outline: none;\\n  padding: 0;\\n  -webkit-appearance: none;\\n}\\n\\n.is-focused .Select-input > input {\\n  cursor: text;\\n}\\n\\n.Select-control:not(.is-searchable) > .Select-input {\\n  outline: none;\\n}\\n\\n.Select-loading-zone {\\n  cursor: pointer;\\n  display: table-cell;\\n  position: relative;\\n  text-align: center;\\n  vertical-align: middle;\\n  width: 16px;\\n}\\n\\n.Select-loading {\\n  -webkit-animation: Select-animation-spin 400ms infinite linear;\\n  animation: Select-animation-spin 400ms infinite linear;\\n  width: 16px;\\n  height: 16px;\\n  box-sizing: border-box;\\n  border-radius: 50%;\\n  border: 2px solid #ccc;\\n  border-right-color: #333;\\n  display: inline-block;\\n  position: relative;\\n  vertical-align: middle;\\n}\\n\\n.Select-clear-zone {\\n  -webkit-animation: Select-animation-fadeIn 200ms;\\n  animation: Select-animation-fadeIn 200ms;\\n  color: #999;\\n  cursor: pointer;\\n  display: table-cell;\\n  position: relative;\\n  text-align: center;\\n  vertical-align: middle;\\n  width: 17px;\\n}\\n\\n.Select-clear-zone:hover {\\n  color: #D0021B;\\n}\\n\\n.Select-clear {\\n  display: inline-block;\\n  font-size: 18px;\\n  line-height: 1;\\n}\\n\\n.Select--multi .Select-clear-zone {\\n  width: 17px;\\n}\\n\\n.Select-arrow-zone {\\n  cursor: pointer;\\n  display: table-cell;\\n  position: relative;\\n  text-align: center;\\n  vertical-align: middle;\\n  width: 25px;\\n  padding-right: 5px;\\n}\\n\\n.Select-arrow {\\n  border-color: #999 transparent transparent;\\n  border-style: solid;\\n  border-width: 5px 5px 2.5px;\\n  display: inline-block;\\n  height: 0;\\n  width: 0;\\n}\\n\\n.is-open .Select-arrow,\\n.Select-arrow-zone:hover > .Select-arrow {\\n  border-top-color: #666;\\n}\\n\\n.Select-menu-outer {\\n  border-bottom-right-radius: 4px;\\n  border-bottom-left-radius: 4px;\\n  background-color: #fff;\\n  border: 1px solid #ccc;\\n  border-top-color: #e6e6e6;\\n  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\\n  box-sizing: border-box;\\n  margin-top: -1px;\\n  max-height: 200px;\\n  position: absolute;\\n  top: 100%;\\n  width: 100%;\\n  z-index: 1000;\\n  -webkit-overflow-scrolling: touch;\\n}\\n\\n.Select-menu {\\n  max-height: 198px;\\n  overflow-y: auto;\\n}\\n\\n.Select-option {\\n  box-sizing: border-box;\\n  color: #666666;\\n  cursor: pointer;\\n  display: block;\\n  padding: 8px 10px;\\n}\\n\\n.Select-option:last-child {\\n  border-bottom-right-radius: 4px;\\n  border-bottom-left-radius: 4px;\\n}\\n\\n.Select-option.is-focused {\\n  background-color: #f2f9fc;\\n  color: #333;\\n}\\n\\n.Select-option.is-disabled {\\n  color: #cccccc;\\n  cursor: not-allowed;\\n}\\n\\n.Select-noresults,\\n.Select-search-prompt,\\n.Select-searching {\\n  box-sizing: border-box;\\n  color: #999999;\\n  cursor: default;\\n  display: block;\\n  padding: 8px 10px;\\n}\\n\\n.Select--multi .Select-input {\\n  vertical-align: middle;\\n  margin-left: 10px;\\n  padding: 0;\\n}\\n\\n.Select--multi.has-value .Select-input {\\n  margin-left: 5px;\\n}\\n\\n.Select-item {\\n  background-color: #f2f9fc;\\n  border-radius: 2px;\\n  border: 1px solid #c9e6f2;\\n  color: #08c;\\n  display: inline-block;\\n  font-size: 0.9em;\\n  margin-left: 5px;\\n  margin-top: 5px;\\n  vertical-align: top;\\n}\\n\\n.Select-item-icon,\\n.Select-item-label {\\n  display: inline-block;\\n  vertical-align: middle;\\n}\\n\\n.Select-item-label {\\n  border-bottom-right-radius: 2px;\\n  border-top-right-radius: 2px;\\n  cursor: default;\\n  padding: 2px 5px;\\n}\\n\\n.Select-item-label .Select-item-label__a {\\n  color: #08c;\\n  cursor: pointer;\\n}\\n\\n.Select-item-icon {\\n  cursor: pointer;\\n  border-bottom-left-radius: 2px;\\n  border-top-left-radius: 2px;\\n  border-right: 1px solid #c9e6f2;\\n  padding: 1px 5px 3px;\\n}\\n\\n.Select-item-icon:hover,\\n.Select-item-icon:focus {\\n  background-color: #ddeff7;\\n  color: #0077b3;\\n}\\n\\n.Select-item-icon:active {\\n  background-color: #c9e6f2;\\n}\\n\\n.Select--multi.is-disabled .Select-item {\\n  background-color: #f2f2f2;\\n  border: 1px solid #d9d9d9;\\n  color: #888;\\n}\\n\\n.Select--multi.is-disabled .Select-item-icon {\\n  cursor: not-allowed;\\n  border-right: 1px solid #d9d9d9;\\n}\\n\\n.Select--multi.is-disabled .Select-item-icon:hover,\\n.Select--multi.is-disabled .Select-item-icon:focus,\\n.Select--multi.is-disabled .Select-item-icon:active {\\n  background-color: #f2f2f2;\\n}\\n\\n@-webkit-keyframes Select-animation-fadeIn {\\n  from {\\n    opacity: 0;\\n  }\\n  to {\\n    opacity: 1;\\n  }\\n}\\n\\n@keyframes Select-animation-fadeIn {\\n  from {\\n    opacity: 0;\\n  }\\n  to {\\n    opacity: 1;\\n  }\\n}\\n\\n@keyframes Select-animation-spin {\\n  to {\\n    -webkit-transform: rotate(1turn);\\n            transform: rotate(1turn);\\n  }\\n}\\n\\n@-webkit-keyframes Select-animation-spin {\\n  to {\\n    -webkit-transform: rotate(1turn);\\n  }\\n}\\n\\nbody {\\n  background-color: #FFFFFF;\\n}\\n\", \"\", {\"version\":3,\"sources\":[\"/./assets/assets/styles/Select.scss\",\"/./assets/assets/index.scss\",\"/./assets/assets/index.scss\"],\"names\":[],\"mappings\":\"AAAA;EACE;;;;;;IAME;CAqSH;;AA5SD;EASI,mBAAmB;CACpB;;AAVH;;;;EAiBI,uBAAuB;CACxB;;AAlBH;EAoBI,0BAA0B;CAC3B;;AArBH;EAuBI,gBAAgB;EAChB,qBAAqB;CACtB;;AAzBH;EA2BI,uBAAuB;EACvB,mCAAmC;EACnC,mBAAmB;EACnB,uBAAuB;EACvB,YAAY;EACZ,gBAAgB;EAChB,eAAe;EACf,aAAa;EACb,cAAc;EACd,iBAAiB;EACjB,mBAAmB;EACnB,YAAY;CACb;;AAvCH;EAyCI,wCAAwB;CACzB;;AA1CH;EA4CI,aAAa;CACd;;AA7CH;EA+CI,8BAA8B;EAC9B,6BAA6B;EAC7B,iBAAiB;EACjB,mCAAmC;CACpC;;AAnDH;EAqDI,2CAA2C;EAC3C,wBAAwB;CACzB;;AAvDH;EAyDI,aAAa;CACd;;AA1DH;EA4DI,mCAAmC;EACnC,oFAAiE;CAClE;;AA9DH;EAgEI,UAAU;EACV,YAAY;EACZ,QAAQ;EACR,kBAAkB;EAClB,mBAAmB;EACnB,oBAAoB;EACpB,mBAAmB;EACnB,SAAS;EACT,OAAO;EACP,gBAAgB;EAChB,iBAAiB;EACjB,wBAAwB;EACxB,oBAAoB;CACrB;;AA7EH;EA+EI,YAAY;CACb;;AAhFH;EAkFI,YAAY;EACZ,QAAQ;EACR,2BAA2B;EAC3B,mBAAmB;EACnB,aAAa;EACb,OAAO;EACP,gBAAgB;EAChB,iBAAiB;EACjB,wBAAwB;EACxB,oBAAoB;CACrB;;AA5FH;EA8FI,YAAY;CACb;;AA/FH;EAiGI,aAAa;EACb,mBAAmB;EACnB,oBAAoB;EACpB,uBAAuB;CACxB;;AArGH;EAuGI,6BAA6B;EAC7B,eAAe;EACf,iBAAiB;EACjB,gBAAgB;EAChB,sBAAsB;EACtB,qBAAqB;EACrB,mBAAmB;EACnB,aAAa;EACb,UAAU;EACV,cAAc;EACd,WAAW;EACX,yBAAyB;CAC1B;;AAnHH;EAqHI,aAAa;CACd;;AAtHH;EAwHI,cAAc;CACf;;AAzHH;EA2HI,gBAAgB;EAChB,oBAAoB;EACpB,mBAAmB;EACnB,mBAAmB;EACnB,uBAAuB;EACvB,YAAY;CACb;;AAjIH;EAmII,+DAA+D;EAE/D,uDAAuD;EACvD,YAAY;EACZ,aAAa;EACb,uBAAuB;EACvB,mBAAmB;EACnB,uBAAuB;EACvB,yBAAyB;EACzB,sBAAsB;EACtB,mBAAmB;EACnB,uBAAuB;CACxB;;AA/IH;EAiJI,iDAAiD;EAEjD,yCAAyC;EACzC,YAAY;EACZ,gBAAgB;EAChB,oBAAoB;EACpB,mBAAmB;EACnB,mBAAmB;EACnB,uBAAuB;EACvB,YAAY;CACb;;AA3JH;EA6JI,eAAe;CAChB;;AA9JH;EAgKI,sBAAsB;EACtB,gBAAgB;EAChB,eAAe;CAChB;;AAnKH;EAqKI,YAAY;CACb;;AAtKH;EAwKI,gBAAgB;EAChB,oBAAoB;EACpB,mBAAmB;EACnB,mBAAmB;EACnB,uBAAuB;EACvB,YAAY;EACZ,mBAAmB;CACpB;;AA/KH;EAiLI,2CAA2C;EAC3C,oBAAoB;EACpB,4BAA4B;EAC5B,sBAAsB;EACtB,UAAU;EACV,SAAS;CACV;;AAvLH;;EA0LI,uBAAuB;CACxB;;AA3LH;EA6LI,gCAAgC;EAChC,+BAA+B;EAC/B,uBAAuB;EACvB,uBAAuB;EACvB,0BAA0B;EAC1B,wCAAwB;EACxB,uBAAuB;EACvB,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;EACnB,UAAU;EACV,YAAY;EACZ,cAAc;EACd,kCAAkC;CACnC;;AA3MH;EA6MI,kBAAkB;EAClB,iBAAiB;CAClB;;AA/MH;EAiNI,uBAAuB;EACvB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,kBAAkB;CACnB;;AAtNH;EAwNI,gCAAgC;EAChC,+BAA+B;CAChC;;AA1NH;EA4NI,0BAA0B;EAC1B,YAAY;CACb;;AA9NH;EAgOI,eAAe;EACf,oBAAoB;CACrB;;AAlOH;;;EAsOI,uBAAuB;EACvB,eAAe;EACf,gBAAgB;EAChB,eAAe;EACf,kBAAkB;CACnB;;AA3OH;EA6OI,uBAAuB;EACvB,kBAAkB;EAClB,WAAW;CACZ;;AAhPH;EAkPI,iBAAiB;CAClB;;AAnPH;EAqPI,0BAA0B;EAC1B,mBAAmB;EACnB,0BAA0B;EAC1B,YAAY;EACZ,sBAAsB;EACtB,iBAAiB;EACjB,iBAAiB;EACjB,gBAAgB;EAChB,oBAAoB;CACrB;;AA9PH;;EAiQI,sBAAsB;EACtB,uBAAuB;CACxB;;AAnQH;EAqQI,gCAAgC;EAChC,6BAA6B;EAC7B,gBAAgB;EAChB,iBAAiB;CAClB;;AAzQH;EA2QI,YAAY;EACZ,gBAAgB;CACjB;;AA7QH;EA+QI,gBAAgB;EAChB,+BAA+B;EAC/B,4BAA4B;EAC5B,gCAAgC;EAChC,qBAAqB;CACtB;;AApRH;;EAuRI,0BAA0B;EAC1B,eAAe;CAChB;;AAzRH;EA2RI,0BAA0B;CAC3B;;AA5RH;EA8RI,0BAA0B;EAC1B,0BAA0B;EAC1B,YAAY;CACb;;AAjSH;EAmSI,oBAAoB;EACpB,gCAAgC;CACjC;;AArSH;;;EAySI,0BAA0B;CAC3B;;AAIH;EACE;IACE,WAAW;GCiDZ;ED/CD;IACE,WAAW;GCiDZ;CACF;;AD/CD;EACE;IACE,WAAW;GCkDZ;EDhDD;IACE,WAAW;GCkDZ;CACF;;ADhDD;EACE;IACE,iCAAiB;YAAjB,yBAAiB;GCmDlB;CACF;;ADjDD;EACE;IACE,iCAAyB;GCoD1B;CACF;;ACpXD;EAEI,0BAA0B;CAC3B\",\"file\":\"index.scss\",\"sourcesContent\":[\":global {\\n  /**\\n   * React Select\\n   * ============\\n   * Created by Jed Watson and Joss Mackison for KeystoneJS, http://www.keystonejs.com/\\n   * https://twitter.com/jedwatson https://twitter.com/jossmackison https://twitter.com/keystonejs\\n   * MIT License: https://github.com/keystonejs/react-select\\n  */\\n  .Select {\\n    position: relative;\\n  }\\n  .Select,\\n  .Select div,\\n  .Select input,\\n  .Select span {\\n    -webkit-box-sizing: border-box;\\n    -moz-box-sizing: border-box;\\n    box-sizing: border-box;\\n  }\\n  .Select.is-disabled > .Select-control {\\n    background-color: #f6f6f6;\\n  }\\n  .Select.is-disabled .Select-arrow-zone {\\n    cursor: default;\\n    pointer-events: none;\\n  }\\n  .Select-control {\\n    background-color: #fff;\\n    border-color: #d9d9d9 #ccc #b3b3b3;\\n    border-radius: 4px;\\n    border: 1px solid #ccc;\\n    color: #333;\\n    cursor: default;\\n    display: table;\\n    height: 36px;\\n    outline: none;\\n    overflow: hidden;\\n    position: relative;\\n    width: 100%;\\n  }\\n  .Select-control:hover {\\n    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\\n  }\\n  .is-searchable.is-open > .Select-control {\\n    cursor: text;\\n  }\\n  .is-open > .Select-control {\\n    border-bottom-right-radius: 0;\\n    border-bottom-left-radius: 0;\\n    background: #fff;\\n    border-color: #b3b3b3 #ccc #d9d9d9;\\n  }\\n  .is-open > .Select-control > .Select-arrow {\\n    border-color: transparent transparent #999;\\n    border-width: 0 5px 5px;\\n  }\\n  .is-searchable.is-focused:not(.is-open) > .Select-control {\\n    cursor: text;\\n  }\\n  .is-focused:not(.is-open) > .Select-control {\\n    border-color: #08c #0099e6 #0099e6;\\n    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 0 5px -1px rgba(0, 136, 204, 0.5);\\n  }\\n  .Select-placeholder {\\n    bottom: 0;\\n    color: #aaa;\\n    left: 0;\\n    line-height: 34px;\\n    padding-left: 10px;\\n    padding-right: 10px;\\n    position: absolute;\\n    right: 0;\\n    top: 0;\\n    max-width: 100%;\\n    overflow: hidden;\\n    text-overflow: ellipsis;\\n    white-space: nowrap;\\n  }\\n  .has-value > .Select-control > .Select-placeholder {\\n    color: #333;\\n  }\\n  .Select-value {\\n    color: #aaa;\\n    left: 0;\\n    padding: 8px 52px 8px 10px;\\n    position: absolute;\\n    right: -15px;\\n    top: 0;\\n    max-width: 100%;\\n    overflow: hidden;\\n    text-overflow: ellipsis;\\n    white-space: nowrap;\\n  }\\n  .has-value > .Select-control > .Select-value {\\n    color: #333;\\n  }\\n  .Select-input {\\n    height: 34px;\\n    padding-left: 10px;\\n    padding-right: 10px;\\n    vertical-align: middle;\\n  }\\n  .Select-input > input {\\n    background: none transparent;\\n    border: 0 none;\\n    box-shadow: none;\\n    cursor: default;\\n    display: inline-block;\\n    font-family: inherit;\\n    font-size: inherit;\\n    height: 34px;\\n    margin: 0;\\n    outline: none;\\n    padding: 0;\\n    -webkit-appearance: none;\\n  }\\n  .is-focused .Select-input > input {\\n    cursor: text;\\n  }\\n  .Select-control:not(.is-searchable) > .Select-input {\\n    outline: none;\\n  }\\n  .Select-loading-zone {\\n    cursor: pointer;\\n    display: table-cell;\\n    position: relative;\\n    text-align: center;\\n    vertical-align: middle;\\n    width: 16px;\\n  }\\n  .Select-loading {\\n    -webkit-animation: Select-animation-spin 400ms infinite linear;\\n    -o-animation: Select-animation-spin 400ms infinite linear;\\n    animation: Select-animation-spin 400ms infinite linear;\\n    width: 16px;\\n    height: 16px;\\n    box-sizing: border-box;\\n    border-radius: 50%;\\n    border: 2px solid #ccc;\\n    border-right-color: #333;\\n    display: inline-block;\\n    position: relative;\\n    vertical-align: middle;\\n  }\\n  .Select-clear-zone {\\n    -webkit-animation: Select-animation-fadeIn 200ms;\\n    -o-animation: Select-animation-fadeIn 200ms;\\n    animation: Select-animation-fadeIn 200ms;\\n    color: #999;\\n    cursor: pointer;\\n    display: table-cell;\\n    position: relative;\\n    text-align: center;\\n    vertical-align: middle;\\n    width: 17px;\\n  }\\n  .Select-clear-zone:hover {\\n    color: #D0021B;\\n  }\\n  .Select-clear {\\n    display: inline-block;\\n    font-size: 18px;\\n    line-height: 1;\\n  }\\n  .Select--multi .Select-clear-zone {\\n    width: 17px;\\n  }\\n  .Select-arrow-zone {\\n    cursor: pointer;\\n    display: table-cell;\\n    position: relative;\\n    text-align: center;\\n    vertical-align: middle;\\n    width: 25px;\\n    padding-right: 5px;\\n  }\\n  .Select-arrow {\\n    border-color: #999 transparent transparent;\\n    border-style: solid;\\n    border-width: 5px 5px 2.5px;\\n    display: inline-block;\\n    height: 0;\\n    width: 0;\\n  }\\n  .is-open .Select-arrow,\\n  .Select-arrow-zone:hover > .Select-arrow {\\n    border-top-color: #666;\\n  }\\n  .Select-menu-outer {\\n    border-bottom-right-radius: 4px;\\n    border-bottom-left-radius: 4px;\\n    background-color: #fff;\\n    border: 1px solid #ccc;\\n    border-top-color: #e6e6e6;\\n    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\\n    box-sizing: border-box;\\n    margin-top: -1px;\\n    max-height: 200px;\\n    position: absolute;\\n    top: 100%;\\n    width: 100%;\\n    z-index: 1000;\\n    -webkit-overflow-scrolling: touch;\\n  }\\n  .Select-menu {\\n    max-height: 198px;\\n    overflow-y: auto;\\n  }\\n  .Select-option {\\n    box-sizing: border-box;\\n    color: #666666;\\n    cursor: pointer;\\n    display: block;\\n    padding: 8px 10px;\\n  }\\n  .Select-option:last-child {\\n    border-bottom-right-radius: 4px;\\n    border-bottom-left-radius: 4px;\\n  }\\n  .Select-option.is-focused {\\n    background-color: #f2f9fc;\\n    color: #333;\\n  }\\n  .Select-option.is-disabled {\\n    color: #cccccc;\\n    cursor: not-allowed;\\n  }\\n  .Select-noresults,\\n  .Select-search-prompt,\\n  .Select-searching {\\n    box-sizing: border-box;\\n    color: #999999;\\n    cursor: default;\\n    display: block;\\n    padding: 8px 10px;\\n  }\\n  .Select--multi .Select-input {\\n    vertical-align: middle;\\n    margin-left: 10px;\\n    padding: 0;\\n  }\\n  .Select--multi.has-value .Select-input {\\n    margin-left: 5px;\\n  }\\n  .Select-item {\\n    background-color: #f2f9fc;\\n    border-radius: 2px;\\n    border: 1px solid #c9e6f2;\\n    color: #08c;\\n    display: inline-block;\\n    font-size: 0.9em;\\n    margin-left: 5px;\\n    margin-top: 5px;\\n    vertical-align: top;\\n  }\\n  .Select-item-icon,\\n  .Select-item-label {\\n    display: inline-block;\\n    vertical-align: middle;\\n  }\\n  .Select-item-label {\\n    border-bottom-right-radius: 2px;\\n    border-top-right-radius: 2px;\\n    cursor: default;\\n    padding: 2px 5px;\\n  }\\n  .Select-item-label .Select-item-label__a {\\n    color: #08c;\\n    cursor: pointer;\\n  }\\n  .Select-item-icon {\\n    cursor: pointer;\\n    border-bottom-left-radius: 2px;\\n    border-top-left-radius: 2px;\\n    border-right: 1px solid #c9e6f2;\\n    padding: 1px 5px 3px;\\n  }\\n  .Select-item-icon:hover,\\n  .Select-item-icon:focus {\\n    background-color: #ddeff7;\\n    color: #0077b3;\\n  }\\n  .Select-item-icon:active {\\n    background-color: #c9e6f2;\\n  }\\n  .Select--multi.is-disabled .Select-item {\\n    background-color: #f2f2f2;\\n    border: 1px solid #d9d9d9;\\n    color: #888;\\n  }\\n  .Select--multi.is-disabled .Select-item-icon {\\n    cursor: not-allowed;\\n    border-right: 1px solid #d9d9d9;\\n  }\\n  .Select--multi.is-disabled .Select-item-icon:hover,\\n  .Select--multi.is-disabled .Select-item-icon:focus,\\n  .Select--multi.is-disabled .Select-item-icon:active {\\n    background-color: #f2f2f2;\\n  }\\n\\n}\\n\\n@-webkit-keyframes :global(Select-animation-fadeIn) {\\n  from {\\n    opacity: 0;\\n  }\\n  to {\\n    opacity: 1;\\n  }\\n}\\n@keyframes :global(Select-animation-fadeIn) {\\n  from {\\n    opacity: 0;\\n  }\\n  to {\\n    opacity: 1;\\n  }\\n}\\n@keyframes :global(Select-animation-spin) {\\n  to {\\n    transform: rotate(1turn);\\n  }\\n}\\n@-webkit-keyframes :global(Select-animation-spin) {\\n  to {\\n    -webkit-transform: rotate(1turn);\\n  }\\n}\\n\",\"@import url(normalize.css/normalize.css);\\n@import url(basscss-base-reset/index.css);\\n:global {\\n  /**\\n   * React Select\\n   * ============\\n   * Created by Jed Watson and Joss Mackison for KeystoneJS, http://www.keystonejs.com/\\n   * https://twitter.com/jedwatson https://twitter.com/jossmackison https://twitter.com/keystonejs\\n   * MIT License: https://github.com/keystonejs/react-select\\n  */\\n}\\n\\n:global .Select {\\n  position: relative;\\n}\\n\\n:global .Select,\\n:global .Select div,\\n:global .Select input,\\n:global .Select span {\\n  -webkit-box-sizing: border-box;\\n  -moz-box-sizing: border-box;\\n  box-sizing: border-box;\\n}\\n\\n:global .Select.is-disabled > .Select-control {\\n  background-color: #f6f6f6;\\n}\\n\\n:global .Select.is-disabled .Select-arrow-zone {\\n  cursor: default;\\n  pointer-events: none;\\n}\\n\\n:global .Select-control {\\n  background-color: #fff;\\n  border-color: #d9d9d9 #ccc #b3b3b3;\\n  border-radius: 4px;\\n  border: 1px solid #ccc;\\n  color: #333;\\n  cursor: default;\\n  display: table;\\n  height: 36px;\\n  outline: none;\\n  overflow: hidden;\\n  position: relative;\\n  width: 100%;\\n}\\n\\n:global .Select-control:hover {\\n  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\\n}\\n\\n:global .is-searchable.is-open > .Select-control {\\n  cursor: text;\\n}\\n\\n:global .is-open > .Select-control {\\n  border-bottom-right-radius: 0;\\n  border-bottom-left-radius: 0;\\n  background: #fff;\\n  border-color: #b3b3b3 #ccc #d9d9d9;\\n}\\n\\n:global .is-open > .Select-control > .Select-arrow {\\n  border-color: transparent transparent #999;\\n  border-width: 0 5px 5px;\\n}\\n\\n:global .is-searchable.is-focused:not(.is-open) > .Select-control {\\n  cursor: text;\\n}\\n\\n:global .is-focused:not(.is-open) > .Select-control {\\n  border-color: #08c #0099e6 #0099e6;\\n  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 0 5px -1px rgba(0, 136, 204, 0.5);\\n}\\n\\n:global .Select-placeholder {\\n  bottom: 0;\\n  color: #aaa;\\n  left: 0;\\n  line-height: 34px;\\n  padding-left: 10px;\\n  padding-right: 10px;\\n  position: absolute;\\n  right: 0;\\n  top: 0;\\n  max-width: 100%;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n  white-space: nowrap;\\n}\\n\\n:global .has-value > .Select-control > .Select-placeholder {\\n  color: #333;\\n}\\n\\n:global .Select-value {\\n  color: #aaa;\\n  left: 0;\\n  padding: 8px 52px 8px 10px;\\n  position: absolute;\\n  right: -15px;\\n  top: 0;\\n  max-width: 100%;\\n  overflow: hidden;\\n  text-overflow: ellipsis;\\n  white-space: nowrap;\\n}\\n\\n:global .has-value > .Select-control > .Select-value {\\n  color: #333;\\n}\\n\\n:global .Select-input {\\n  height: 34px;\\n  padding-left: 10px;\\n  padding-right: 10px;\\n  vertical-align: middle;\\n}\\n\\n:global .Select-input > input {\\n  background: none transparent;\\n  border: 0 none;\\n  box-shadow: none;\\n  cursor: default;\\n  display: inline-block;\\n  font-family: inherit;\\n  font-size: inherit;\\n  height: 34px;\\n  margin: 0;\\n  outline: none;\\n  padding: 0;\\n  -webkit-appearance: none;\\n}\\n\\n:global .is-focused .Select-input > input {\\n  cursor: text;\\n}\\n\\n:global .Select-control:not(.is-searchable) > .Select-input {\\n  outline: none;\\n}\\n\\n:global .Select-loading-zone {\\n  cursor: pointer;\\n  display: table-cell;\\n  position: relative;\\n  text-align: center;\\n  vertical-align: middle;\\n  width: 16px;\\n}\\n\\n:global .Select-loading {\\n  -webkit-animation: Select-animation-spin 400ms infinite linear;\\n  -o-animation: Select-animation-spin 400ms infinite linear;\\n  animation: Select-animation-spin 400ms infinite linear;\\n  width: 16px;\\n  height: 16px;\\n  box-sizing: border-box;\\n  border-radius: 50%;\\n  border: 2px solid #ccc;\\n  border-right-color: #333;\\n  display: inline-block;\\n  position: relative;\\n  vertical-align: middle;\\n}\\n\\n:global .Select-clear-zone {\\n  -webkit-animation: Select-animation-fadeIn 200ms;\\n  -o-animation: Select-animation-fadeIn 200ms;\\n  animation: Select-animation-fadeIn 200ms;\\n  color: #999;\\n  cursor: pointer;\\n  display: table-cell;\\n  position: relative;\\n  text-align: center;\\n  vertical-align: middle;\\n  width: 17px;\\n}\\n\\n:global .Select-clear-zone:hover {\\n  color: #D0021B;\\n}\\n\\n:global .Select-clear {\\n  display: inline-block;\\n  font-size: 18px;\\n  line-height: 1;\\n}\\n\\n:global .Select--multi .Select-clear-zone {\\n  width: 17px;\\n}\\n\\n:global .Select-arrow-zone {\\n  cursor: pointer;\\n  display: table-cell;\\n  position: relative;\\n  text-align: center;\\n  vertical-align: middle;\\n  width: 25px;\\n  padding-right: 5px;\\n}\\n\\n:global .Select-arrow {\\n  border-color: #999 transparent transparent;\\n  border-style: solid;\\n  border-width: 5px 5px 2.5px;\\n  display: inline-block;\\n  height: 0;\\n  width: 0;\\n}\\n\\n:global .is-open .Select-arrow,\\n:global .Select-arrow-zone:hover > .Select-arrow {\\n  border-top-color: #666;\\n}\\n\\n:global .Select-menu-outer {\\n  border-bottom-right-radius: 4px;\\n  border-bottom-left-radius: 4px;\\n  background-color: #fff;\\n  border: 1px solid #ccc;\\n  border-top-color: #e6e6e6;\\n  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);\\n  box-sizing: border-box;\\n  margin-top: -1px;\\n  max-height: 200px;\\n  position: absolute;\\n  top: 100%;\\n  width: 100%;\\n  z-index: 1000;\\n  -webkit-overflow-scrolling: touch;\\n}\\n\\n:global .Select-menu {\\n  max-height: 198px;\\n  overflow-y: auto;\\n}\\n\\n:global .Select-option {\\n  box-sizing: border-box;\\n  color: #666666;\\n  cursor: pointer;\\n  display: block;\\n  padding: 8px 10px;\\n}\\n\\n:global .Select-option:last-child {\\n  border-bottom-right-radius: 4px;\\n  border-bottom-left-radius: 4px;\\n}\\n\\n:global .Select-option.is-focused {\\n  background-color: #f2f9fc;\\n  color: #333;\\n}\\n\\n:global .Select-option.is-disabled {\\n  color: #cccccc;\\n  cursor: not-allowed;\\n}\\n\\n:global .Select-noresults,\\n:global .Select-search-prompt,\\n:global .Select-searching {\\n  box-sizing: border-box;\\n  color: #999999;\\n  cursor: default;\\n  display: block;\\n  padding: 8px 10px;\\n}\\n\\n:global .Select--multi .Select-input {\\n  vertical-align: middle;\\n  margin-left: 10px;\\n  padding: 0;\\n}\\n\\n:global .Select--multi.has-value .Select-input {\\n  margin-left: 5px;\\n}\\n\\n:global .Select-item {\\n  background-color: #f2f9fc;\\n  border-radius: 2px;\\n  border: 1px solid #c9e6f2;\\n  color: #08c;\\n  display: inline-block;\\n  font-size: 0.9em;\\n  margin-left: 5px;\\n  margin-top: 5px;\\n  vertical-align: top;\\n}\\n\\n:global .Select-item-icon,\\n:global .Select-item-label {\\n  display: inline-block;\\n  vertical-align: middle;\\n}\\n\\n:global .Select-item-label {\\n  border-bottom-right-radius: 2px;\\n  border-top-right-radius: 2px;\\n  cursor: default;\\n  padding: 2px 5px;\\n}\\n\\n:global .Select-item-label .Select-item-label__a {\\n  color: #08c;\\n  cursor: pointer;\\n}\\n\\n:global .Select-item-icon {\\n  cursor: pointer;\\n  border-bottom-left-radius: 2px;\\n  border-top-left-radius: 2px;\\n  border-right: 1px solid #c9e6f2;\\n  padding: 1px 5px 3px;\\n}\\n\\n:global .Select-item-icon:hover,\\n:global .Select-item-icon:focus {\\n  background-color: #ddeff7;\\n  color: #0077b3;\\n}\\n\\n:global .Select-item-icon:active {\\n  background-color: #c9e6f2;\\n}\\n\\n:global .Select--multi.is-disabled .Select-item {\\n  background-color: #f2f2f2;\\n  border: 1px solid #d9d9d9;\\n  color: #888;\\n}\\n\\n:global .Select--multi.is-disabled .Select-item-icon {\\n  cursor: not-allowed;\\n  border-right: 1px solid #d9d9d9;\\n}\\n\\n:global .Select--multi.is-disabled .Select-item-icon:hover,\\n:global .Select--multi.is-disabled .Select-item-icon:focus,\\n:global .Select--multi.is-disabled .Select-item-icon:active {\\n  background-color: #f2f2f2;\\n}\\n\\n@-webkit-keyframes :global(Select-animation-fadeIn) {\\n  from {\\n    opacity: 0;\\n  }\\n  to {\\n    opacity: 1;\\n  }\\n}\\n\\n@keyframes :global(Select-animation-fadeIn) {\\n  from {\\n    opacity: 0;\\n  }\\n  to {\\n    opacity: 1;\\n  }\\n}\\n\\n@keyframes :global(Select-animation-spin) {\\n  to {\\n    transform: rotate(1turn);\\n  }\\n}\\n\\n@-webkit-keyframes :global(Select-animation-spin) {\\n  to {\\n    -webkit-transform: rotate(1turn);\\n  }\\n}\\n\\n:global body {\\n  background-color: #FFFFFF;\\n}\\n\",\"@import 'normalize.css/normalize.css';\\n@import 'basscss-base-reset/index.css';\\n// @import 'basscss/css/basscss.css';\\n\\n@import './styles/Select.scss';\\n\\n:global {\\n  body {\\n    background-color: #FFFFFF;\\n  }\\n}\\n\"],\"sourceRoot\":\"webpack://\"}]);\n\n// exports\n; module.exports = exports.locals; module.exports._style = exports.toString()",
    "./src/common/pages/App/App.scss": "exports = module.exports = require(\"./../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".content___HT6CO {\\n  margin: 50px 0;\\n}\\n\", \"\", {\"version\":3,\"sources\":[\"/./src/common/pages/App/src/common/pages/src/common/pages/App/App.scss\"],\"names\":[],\"mappings\":\"AAAA;EACE,eAAe;CAChB\",\"file\":\"App.scss\",\"sourcesContent\":[\".content {\\n  margin: 50px 0; // for fixed navbar\\n}\\n\"],\"sourceRoot\":\"webpack://\"}]);\n\n// exports\nexports.locals = {\n\t\"content\": \"content___HT6CO\"\n};; module.exports = exports.locals; module.exports._style = exports.toString()",
    "./~/basscss-base-reset/index.css": "exports = module.exports = require(\"./../css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"body {\\n  margin: 0;\\n}\\n\\nimg {\\n  max-width: 100%;\\n}\\n\\nsvg {\\n  max-height: 100%;\\n}\\n\", \"\", {\"version\":3,\"sources\":[\"/./node_modules/basscss-base-reset/node_modules/node_modules/basscss-base-reset/index.css\"],\"names\":[],\"mappings\":\"AACA;EAAO,UAAW;CAAE;;AACpB;EAAM,gBAAiB;CAAE;;AACzB;EAAM,iBAAkB;CAAE\",\"file\":\"index.css\",\"sourcesContent\":[\"\\nbody { margin: 0 }\\nimg { max-width: 100% }\\nsvg { max-height: 100% }\\n\\n\"],\"sourceRoot\":\"webpack://\"}]);\n\n// exports\n; module.exports = exports.locals; module.exports._style = exports.toString()",
    "./~/normalize.css/normalize.css": "exports = module.exports = require(\"./../css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\\n/**\\n * 1. Set default font family to sans-serif.\\n * 2. Prevent iOS and IE text size adjust after device orientation change,\\n *    without disabling user zoom.\\n */\\nhtml {\\n  font-family: sans-serif;\\n  /* 1 */\\n  -ms-text-size-adjust: 100%;\\n  /* 2 */\\n  -webkit-text-size-adjust: 100%;\\n  /* 2 */\\n}\\n\\n/**\\n * Remove default margin.\\n */\\nbody {\\n  margin: 0;\\n}\\n\\n/* HTML5 display definitions\\n   ========================================================================== */\\n/**\\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\\n * and Firefox.\\n * Correct `block` display not defined for `main` in IE 11.\\n */\\narticle,\\naside,\\ndetails,\\nfigcaption,\\nfigure,\\nfooter,\\nheader,\\nhgroup,\\nmain,\\nmenu,\\nnav,\\nsection,\\nsummary {\\n  display: block;\\n}\\n\\n/**\\n * 1. Correct `inline-block` display not defined in IE 8/9.\\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\\n */\\naudio,\\ncanvas,\\nprogress,\\nvideo {\\n  display: inline-block;\\n  /* 1 */\\n  vertical-align: baseline;\\n  /* 2 */\\n}\\n\\n/**\\n * Prevent modern browsers from displaying `audio` without controls.\\n * Remove excess height in iOS 5 devices.\\n */\\naudio:not([controls]) {\\n  display: none;\\n  height: 0;\\n}\\n\\n/**\\n * Address `[hidden]` styling not present in IE 8/9/10.\\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\\n */\\n[hidden],\\ntemplate {\\n  display: none;\\n}\\n\\n/* Links\\n   ========================================================================== */\\n/**\\n * Remove the gray background color from active links in IE 10.\\n */\\na {\\n  background-color: transparent;\\n}\\n\\n/**\\n * Improve readability of focused elements when they are also in an\\n * active/hover state.\\n */\\na:active,\\na:hover {\\n  outline: 0;\\n}\\n\\n/* Text-level semantics\\n   ========================================================================== */\\n/**\\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\\n */\\nabbr[title] {\\n  border-bottom: 1px dotted;\\n}\\n\\n/**\\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\\n */\\nb,\\nstrong {\\n  font-weight: bold;\\n}\\n\\n/**\\n * Address styling not present in Safari and Chrome.\\n */\\ndfn {\\n  font-style: italic;\\n}\\n\\n/**\\n * Address variable `h1` font-size and margin within `section` and `article`\\n * contexts in Firefox 4+, Safari, and Chrome.\\n */\\nh1 {\\n  font-size: 2em;\\n  margin: 0.67em 0;\\n}\\n\\n/**\\n * Address styling not present in IE 8/9.\\n */\\nmark {\\n  background: #ff0;\\n  color: #000;\\n}\\n\\n/**\\n * Address inconsistent and variable font size in all browsers.\\n */\\nsmall {\\n  font-size: 80%;\\n}\\n\\n/**\\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\\n */\\nsub,\\nsup {\\n  font-size: 75%;\\n  line-height: 0;\\n  position: relative;\\n  vertical-align: baseline;\\n}\\n\\nsup {\\n  top: -0.5em;\\n}\\n\\nsub {\\n  bottom: -0.25em;\\n}\\n\\n/* Embedded content\\n   ========================================================================== */\\n/**\\n * Remove border when inside `a` element in IE 8/9/10.\\n */\\nimg {\\n  border: 0;\\n}\\n\\n/**\\n * Correct overflow not hidden in IE 9/10/11.\\n */\\nsvg:not(:root) {\\n  overflow: hidden;\\n}\\n\\n/* Grouping content\\n   ========================================================================== */\\n/**\\n * Address margin not present in IE 8/9 and Safari.\\n */\\nfigure {\\n  margin: 1em 40px;\\n}\\n\\n/**\\n * Address differences between Firefox and other browsers.\\n */\\nhr {\\n  box-sizing: content-box;\\n  height: 0;\\n}\\n\\n/**\\n * Contain overflow in all browsers.\\n */\\npre {\\n  overflow: auto;\\n}\\n\\n/**\\n * Address odd `em`-unit font size rendering in all browsers.\\n */\\ncode,\\nkbd,\\npre,\\nsamp {\\n  font-family: monospace, monospace;\\n  font-size: 1em;\\n}\\n\\n/* Forms\\n   ========================================================================== */\\n/**\\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\\n * styling of `select`, unless a `border` property is set.\\n */\\n/**\\n * 1. Correct color not being inherited.\\n *    Known issue: affects color of disabled elements.\\n * 2. Correct font properties not being inherited.\\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\\n */\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n  color: inherit;\\n  /* 1 */\\n  font: inherit;\\n  /* 2 */\\n  margin: 0;\\n  /* 3 */\\n}\\n\\n/**\\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\\n */\\nbutton {\\n  overflow: visible;\\n}\\n\\n/**\\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\\n * All other form control elements do not inherit `text-transform` values.\\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\\n * Correct `select` style inheritance in Firefox.\\n */\\nbutton,\\nselect {\\n  text-transform: none;\\n}\\n\\n/**\\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\\n *    and `video` controls.\\n * 2. Correct inability to style clickable `input` types in iOS.\\n * 3. Improve usability and consistency of cursor style between image-type\\n *    `input` and others.\\n */\\nbutton,\\nhtml input[type=\\\"button\\\"],\\ninput[type=\\\"reset\\\"],\\ninput[type=\\\"submit\\\"] {\\n  -webkit-appearance: button;\\n  /* 2 */\\n  cursor: pointer;\\n  /* 3 */\\n}\\n\\n/**\\n * Re-set default cursor for disabled elements.\\n */\\nbutton[disabled],\\nhtml input[disabled] {\\n  cursor: default;\\n}\\n\\n/**\\n * Remove inner padding and border in Firefox 4+.\\n */\\nbutton::-moz-focus-inner,\\ninput::-moz-focus-inner {\\n  border: 0;\\n  padding: 0;\\n}\\n\\n/**\\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\\n * the UA stylesheet.\\n */\\ninput {\\n  line-height: normal;\\n}\\n\\n/**\\n * It's recommended that you don't attempt to style these elements.\\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\\n *\\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\\n * 2. Remove excess padding in IE 8/9/10.\\n */\\ninput[type=\\\"checkbox\\\"],\\ninput[type=\\\"radio\\\"] {\\n  box-sizing: border-box;\\n  /* 1 */\\n  padding: 0;\\n  /* 2 */\\n}\\n\\n/**\\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\\n * `font-size` values of the `input`, it causes the cursor style of the\\n * decrement button to change from `default` to `text`.\\n */\\ninput[type=\\\"number\\\"]::-webkit-inner-spin-button,\\ninput[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n  height: auto;\\n}\\n\\n/**\\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\\n */\\ninput[type=\\\"search\\\"] {\\n  -webkit-appearance: textfield;\\n  /* 1 */\\n  box-sizing: content-box;\\n  /* 2 */\\n}\\n\\n/**\\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\\n * Safari (but not Chrome) clips the cancel button when the search input has\\n * padding (and `textfield` appearance).\\n */\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button,\\ninput[type=\\\"search\\\"]::-webkit-search-decoration {\\n  -webkit-appearance: none;\\n}\\n\\n/**\\n * Define consistent border, margin, and padding.\\n */\\nfieldset {\\n  border: 1px solid #c0c0c0;\\n  margin: 0 2px;\\n  padding: 0.35em 0.625em 0.75em;\\n}\\n\\n/**\\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\\n */\\nlegend {\\n  border: 0;\\n  /* 1 */\\n  padding: 0;\\n  /* 2 */\\n}\\n\\n/**\\n * Remove default vertical scrollbar in IE 8/9/10/11.\\n */\\ntextarea {\\n  overflow: auto;\\n}\\n\\n/**\\n * Don't inherit the `font-weight` (applied by a rule above).\\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\\n */\\noptgroup {\\n  font-weight: bold;\\n}\\n\\n/* Tables\\n   ========================================================================== */\\n/**\\n * Remove most spacing between table cells.\\n */\\ntable {\\n  border-collapse: collapse;\\n  border-spacing: 0;\\n}\\n\\ntd,\\nth {\\n  padding: 0;\\n}\\n\", \"\", {\"version\":3,\"sources\":[\"/./node_modules/normalize.css/node_modules/node_modules/normalize.css/normalize.css\",\"/./node_modules/normalize.css/node_modules/normalize.css/normalize.css\"],\"names\":[],\"mappings\":\"AAAA,4EAA4E;AAE5E;;;;GAIG;AAEH;EACE,wBAAwB;EAAE,OAAO;EACjC,2BAA2B;EAAE,OAAO;EACpC,+BAA+B;EAAE,OAAO;CACzC;;AAED;;GAEG;AAEH;EACE,UAAU;CACX;;AAED;gFACgF;AAEhF;;;;;GAKG;AAEH;;;;;;;;;;;;;EAaE,eAAe;CAChB;;AAED;;;GAGG;AAEH;;;;EAIE,sBAAsB;EAAE,OAAO;EAC/B,yBAAyB;EAAE,OAAO;CACnC;;AAED;;;GAGG;AAEH;EACE,cAAc;EACd,UAAU;CACX;;AAED;;;GAGG;ACDH;;EDKE,cAAc;CACf;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,8BAA8B;CAC/B;;AAED;;;GAGG;AAEH;;EAEE,WAAW;CACZ;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,0BAA0B;CAC3B;;AAED;;GAEG;AAEH;;EAEE,kBAAkB;CACnB;;AAED;;GAEG;AAEH;EACE,mBAAmB;CACpB;;AAED;;;GAGG;AAEH;EACE,eAAe;EACf,iBAAiB;CAClB;;AAED;;GAEG;AAEH;EACE,iBAAiB;EACjB,YAAY;CACb;;AAED;;GAEG;AAEH;EACE,eAAe;CAChB;;AAED;;GAEG;AAEH;;EAEE,eAAe;EACf,eAAe;EACf,mBAAmB;EACnB,yBAAyB;CAC1B;;AAED;EACE,YAAY;CACb;;AAED;EACE,gBAAgB;CACjB;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,UAAU;CACX;;AAED;;GAEG;AAEH;EACE,iBAAiB;CAClB;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,iBAAiB;CAClB;;AAED;;GAEG;AAEH;EACE,wBAAwB;EACxB,UAAU;CACX;;AAED;;GAEG;AAEH;EACE,eAAe;CAChB;;AAED;;GAEG;AAEH;;;;EAIE,kCAAkC;EAClC,eAAe;CAChB;;AAED;gFACgF;AAEhF;;;GAGG;AAEH;;;;;GAKG;AAEH;;;;;EAKE,eAAe;EAAE,OAAO;EACxB,cAAc;EAAE,OAAO;EACvB,UAAU;EAAE,OAAO;CACpB;;AAED;;GAEG;AAEH;EACE,kBAAkB;CACnB;;AAED;;;;;GAKG;AAEH;;EAEE,qBAAqB;CACtB;;AAED;;;;;;GAMG;AAEH;;;;EAIE,2BAA2B;EAAE,OAAO;EACpC,gBAAgB;EAAE,OAAO;CAC1B;;AAED;;GAEG;AAEH;;EAEE,gBAAgB;CACjB;;AAED;;GAEG;AAEH;;EAEE,UAAU;EACV,WAAW;CACZ;;AAED;;;GAGG;AAEH;EACE,oBAAoB;CACrB;;AAED;;;;;;GAMG;AAEH;;EAEE,uBAAuB;EAAE,OAAO;EAChC,WAAW;EAAE,OAAO;CACrB;;AAED;;;;GAIG;AAEH;;EAEE,aAAa;CACd;;AAED;;;GAGG;AAEH;EACE,8BAA8B;EAAE,OAAO;EACvC,wBAAwB;EAAE,OAAO;CAClC;;AAED;;;;GAIG;AAEH;;EAEE,yBAAyB;CAC1B;;AAED;;GAEG;AAEH;EACE,0BAA0B;EAC1B,cAAc;EACd,+BAA+B;CAChC;;AAED;;;GAGG;AAEH;EACE,UAAU;EAAE,OAAO;EACnB,WAAW;EAAE,OAAO;CACrB;;AAED;;GAEG;AAEH;EACE,eAAe;CAChB;;AAED;;;GAGG;AAEH;EACE,kBAAkB;CACnB;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,0BAA0B;EAC1B,kBAAkB;CACnB;;AAED;;EAEE,WAAW;CACZ\",\"file\":\"normalize.css\",\"sourcesContent\":[\"/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\\n\\n/**\\n * 1. Set default font family to sans-serif.\\n * 2. Prevent iOS and IE text size adjust after device orientation change,\\n *    without disabling user zoom.\\n */\\n\\nhtml {\\n  font-family: sans-serif; /* 1 */\\n  -ms-text-size-adjust: 100%; /* 2 */\\n  -webkit-text-size-adjust: 100%; /* 2 */\\n}\\n\\n/**\\n * Remove default margin.\\n */\\n\\nbody {\\n  margin: 0;\\n}\\n\\n/* HTML5 display definitions\\n   ========================================================================== */\\n\\n/**\\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\\n * and Firefox.\\n * Correct `block` display not defined for `main` in IE 11.\\n */\\n\\narticle,\\naside,\\ndetails,\\nfigcaption,\\nfigure,\\nfooter,\\nheader,\\nhgroup,\\nmain,\\nmenu,\\nnav,\\nsection,\\nsummary {\\n  display: block;\\n}\\n\\n/**\\n * 1. Correct `inline-block` display not defined in IE 8/9.\\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\\n */\\n\\naudio,\\ncanvas,\\nprogress,\\nvideo {\\n  display: inline-block; /* 1 */\\n  vertical-align: baseline; /* 2 */\\n}\\n\\n/**\\n * Prevent modern browsers from displaying `audio` without controls.\\n * Remove excess height in iOS 5 devices.\\n */\\n\\naudio:not([controls]) {\\n  display: none;\\n  height: 0;\\n}\\n\\n/**\\n * Address `[hidden]` styling not present in IE 8/9/10.\\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\\n */\\n\\n[hidden],\\ntemplate {\\n  display: none;\\n}\\n\\n/* Links\\n   ========================================================================== */\\n\\n/**\\n * Remove the gray background color from active links in IE 10.\\n */\\n\\na {\\n  background-color: transparent;\\n}\\n\\n/**\\n * Improve readability of focused elements when they are also in an\\n * active/hover state.\\n */\\n\\na:active,\\na:hover {\\n  outline: 0;\\n}\\n\\n/* Text-level semantics\\n   ========================================================================== */\\n\\n/**\\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\\n */\\n\\nabbr[title] {\\n  border-bottom: 1px dotted;\\n}\\n\\n/**\\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\\n */\\n\\nb,\\nstrong {\\n  font-weight: bold;\\n}\\n\\n/**\\n * Address styling not present in Safari and Chrome.\\n */\\n\\ndfn {\\n  font-style: italic;\\n}\\n\\n/**\\n * Address variable `h1` font-size and margin within `section` and `article`\\n * contexts in Firefox 4+, Safari, and Chrome.\\n */\\n\\nh1 {\\n  font-size: 2em;\\n  margin: 0.67em 0;\\n}\\n\\n/**\\n * Address styling not present in IE 8/9.\\n */\\n\\nmark {\\n  background: #ff0;\\n  color: #000;\\n}\\n\\n/**\\n * Address inconsistent and variable font size in all browsers.\\n */\\n\\nsmall {\\n  font-size: 80%;\\n}\\n\\n/**\\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\\n */\\n\\nsub,\\nsup {\\n  font-size: 75%;\\n  line-height: 0;\\n  position: relative;\\n  vertical-align: baseline;\\n}\\n\\nsup {\\n  top: -0.5em;\\n}\\n\\nsub {\\n  bottom: -0.25em;\\n}\\n\\n/* Embedded content\\n   ========================================================================== */\\n\\n/**\\n * Remove border when inside `a` element in IE 8/9/10.\\n */\\n\\nimg {\\n  border: 0;\\n}\\n\\n/**\\n * Correct overflow not hidden in IE 9/10/11.\\n */\\n\\nsvg:not(:root) {\\n  overflow: hidden;\\n}\\n\\n/* Grouping content\\n   ========================================================================== */\\n\\n/**\\n * Address margin not present in IE 8/9 and Safari.\\n */\\n\\nfigure {\\n  margin: 1em 40px;\\n}\\n\\n/**\\n * Address differences between Firefox and other browsers.\\n */\\n\\nhr {\\n  box-sizing: content-box;\\n  height: 0;\\n}\\n\\n/**\\n * Contain overflow in all browsers.\\n */\\n\\npre {\\n  overflow: auto;\\n}\\n\\n/**\\n * Address odd `em`-unit font size rendering in all browsers.\\n */\\n\\ncode,\\nkbd,\\npre,\\nsamp {\\n  font-family: monospace, monospace;\\n  font-size: 1em;\\n}\\n\\n/* Forms\\n   ========================================================================== */\\n\\n/**\\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\\n * styling of `select`, unless a `border` property is set.\\n */\\n\\n/**\\n * 1. Correct color not being inherited.\\n *    Known issue: affects color of disabled elements.\\n * 2. Correct font properties not being inherited.\\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\\n */\\n\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n  color: inherit; /* 1 */\\n  font: inherit; /* 2 */\\n  margin: 0; /* 3 */\\n}\\n\\n/**\\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\\n */\\n\\nbutton {\\n  overflow: visible;\\n}\\n\\n/**\\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\\n * All other form control elements do not inherit `text-transform` values.\\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\\n * Correct `select` style inheritance in Firefox.\\n */\\n\\nbutton,\\nselect {\\n  text-transform: none;\\n}\\n\\n/**\\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\\n *    and `video` controls.\\n * 2. Correct inability to style clickable `input` types in iOS.\\n * 3. Improve usability and consistency of cursor style between image-type\\n *    `input` and others.\\n */\\n\\nbutton,\\nhtml input[type=\\\"button\\\"], /* 1 */\\ninput[type=\\\"reset\\\"],\\ninput[type=\\\"submit\\\"] {\\n  -webkit-appearance: button; /* 2 */\\n  cursor: pointer; /* 3 */\\n}\\n\\n/**\\n * Re-set default cursor for disabled elements.\\n */\\n\\nbutton[disabled],\\nhtml input[disabled] {\\n  cursor: default;\\n}\\n\\n/**\\n * Remove inner padding and border in Firefox 4+.\\n */\\n\\nbutton::-moz-focus-inner,\\ninput::-moz-focus-inner {\\n  border: 0;\\n  padding: 0;\\n}\\n\\n/**\\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\\n * the UA stylesheet.\\n */\\n\\ninput {\\n  line-height: normal;\\n}\\n\\n/**\\n * It's recommended that you don't attempt to style these elements.\\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\\n *\\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\\n * 2. Remove excess padding in IE 8/9/10.\\n */\\n\\ninput[type=\\\"checkbox\\\"],\\ninput[type=\\\"radio\\\"] {\\n  box-sizing: border-box; /* 1 */\\n  padding: 0; /* 2 */\\n}\\n\\n/**\\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\\n * `font-size` values of the `input`, it causes the cursor style of the\\n * decrement button to change from `default` to `text`.\\n */\\n\\ninput[type=\\\"number\\\"]::-webkit-inner-spin-button,\\ninput[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n  height: auto;\\n}\\n\\n/**\\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\\n */\\n\\ninput[type=\\\"search\\\"] {\\n  -webkit-appearance: textfield; /* 1 */\\n  box-sizing: content-box; /* 2 */\\n}\\n\\n/**\\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\\n * Safari (but not Chrome) clips the cancel button when the search input has\\n * padding (and `textfield` appearance).\\n */\\n\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button,\\ninput[type=\\\"search\\\"]::-webkit-search-decoration {\\n  -webkit-appearance: none;\\n}\\n\\n/**\\n * Define consistent border, margin, and padding.\\n */\\n\\nfieldset {\\n  border: 1px solid #c0c0c0;\\n  margin: 0 2px;\\n  padding: 0.35em 0.625em 0.75em;\\n}\\n\\n/**\\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\\n */\\n\\nlegend {\\n  border: 0; /* 1 */\\n  padding: 0; /* 2 */\\n}\\n\\n/**\\n * Remove default vertical scrollbar in IE 8/9/10/11.\\n */\\n\\ntextarea {\\n  overflow: auto;\\n}\\n\\n/**\\n * Don't inherit the `font-weight` (applied by a rule above).\\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\\n */\\n\\noptgroup {\\n  font-weight: bold;\\n}\\n\\n/* Tables\\n   ========================================================================== */\\n\\n/**\\n * Remove most spacing between table cells.\\n */\\n\\ntable {\\n  border-collapse: collapse;\\n  border-spacing: 0;\\n}\\n\\ntd,\\nth {\\n  padding: 0;\\n}\\n\",\"/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\\n/**\\n * 1. Set default font family to sans-serif.\\n * 2. Prevent iOS and IE text size adjust after device orientation change,\\n *    without disabling user zoom.\\n */\\nhtml {\\n  font-family: sans-serif;\\n  /* 1 */\\n  -ms-text-size-adjust: 100%;\\n  /* 2 */\\n  -webkit-text-size-adjust: 100%;\\n  /* 2 */\\n}\\n\\n/**\\n * Remove default margin.\\n */\\nbody {\\n  margin: 0;\\n}\\n\\n/* HTML5 display definitions\\n   ========================================================================== */\\n/**\\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\\n * and Firefox.\\n * Correct `block` display not defined for `main` in IE 11.\\n */\\narticle,\\naside,\\ndetails,\\nfigcaption,\\nfigure,\\nfooter,\\nheader,\\nhgroup,\\nmain,\\nmenu,\\nnav,\\nsection,\\nsummary {\\n  display: block;\\n}\\n\\n/**\\n * 1. Correct `inline-block` display not defined in IE 8/9.\\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\\n */\\naudio,\\ncanvas,\\nprogress,\\nvideo {\\n  display: inline-block;\\n  /* 1 */\\n  vertical-align: baseline;\\n  /* 2 */\\n}\\n\\n/**\\n * Prevent modern browsers from displaying `audio` without controls.\\n * Remove excess height in iOS 5 devices.\\n */\\naudio:not([controls]) {\\n  display: none;\\n  height: 0;\\n}\\n\\n/**\\n * Address `[hidden]` styling not present in IE 8/9/10.\\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\\n */\\n[hidden],\\ntemplate {\\n  display: none;\\n}\\n\\n/* Links\\n   ========================================================================== */\\n/**\\n * Remove the gray background color from active links in IE 10.\\n */\\na {\\n  background-color: transparent;\\n}\\n\\n/**\\n * Improve readability of focused elements when they are also in an\\n * active/hover state.\\n */\\na:active,\\na:hover {\\n  outline: 0;\\n}\\n\\n/* Text-level semantics\\n   ========================================================================== */\\n/**\\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\\n */\\nabbr[title] {\\n  border-bottom: 1px dotted;\\n}\\n\\n/**\\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\\n */\\nb,\\nstrong {\\n  font-weight: bold;\\n}\\n\\n/**\\n * Address styling not present in Safari and Chrome.\\n */\\ndfn {\\n  font-style: italic;\\n}\\n\\n/**\\n * Address variable `h1` font-size and margin within `section` and `article`\\n * contexts in Firefox 4+, Safari, and Chrome.\\n */\\nh1 {\\n  font-size: 2em;\\n  margin: 0.67em 0;\\n}\\n\\n/**\\n * Address styling not present in IE 8/9.\\n */\\nmark {\\n  background: #ff0;\\n  color: #000;\\n}\\n\\n/**\\n * Address inconsistent and variable font size in all browsers.\\n */\\nsmall {\\n  font-size: 80%;\\n}\\n\\n/**\\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\\n */\\nsub,\\nsup {\\n  font-size: 75%;\\n  line-height: 0;\\n  position: relative;\\n  vertical-align: baseline;\\n}\\n\\nsup {\\n  top: -0.5em;\\n}\\n\\nsub {\\n  bottom: -0.25em;\\n}\\n\\n/* Embedded content\\n   ========================================================================== */\\n/**\\n * Remove border when inside `a` element in IE 8/9/10.\\n */\\nimg {\\n  border: 0;\\n}\\n\\n/**\\n * Correct overflow not hidden in IE 9/10/11.\\n */\\nsvg:not(:root) {\\n  overflow: hidden;\\n}\\n\\n/* Grouping content\\n   ========================================================================== */\\n/**\\n * Address margin not present in IE 8/9 and Safari.\\n */\\nfigure {\\n  margin: 1em 40px;\\n}\\n\\n/**\\n * Address differences between Firefox and other browsers.\\n */\\nhr {\\n  box-sizing: content-box;\\n  height: 0;\\n}\\n\\n/**\\n * Contain overflow in all browsers.\\n */\\npre {\\n  overflow: auto;\\n}\\n\\n/**\\n * Address odd `em`-unit font size rendering in all browsers.\\n */\\ncode,\\nkbd,\\npre,\\nsamp {\\n  font-family: monospace, monospace;\\n  font-size: 1em;\\n}\\n\\n/* Forms\\n   ========================================================================== */\\n/**\\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\\n * styling of `select`, unless a `border` property is set.\\n */\\n/**\\n * 1. Correct color not being inherited.\\n *    Known issue: affects color of disabled elements.\\n * 2. Correct font properties not being inherited.\\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\\n */\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n  color: inherit;\\n  /* 1 */\\n  font: inherit;\\n  /* 2 */\\n  margin: 0;\\n  /* 3 */\\n}\\n\\n/**\\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\\n */\\nbutton {\\n  overflow: visible;\\n}\\n\\n/**\\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\\n * All other form control elements do not inherit `text-transform` values.\\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\\n * Correct `select` style inheritance in Firefox.\\n */\\nbutton,\\nselect {\\n  text-transform: none;\\n}\\n\\n/**\\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\\n *    and `video` controls.\\n * 2. Correct inability to style clickable `input` types in iOS.\\n * 3. Improve usability and consistency of cursor style between image-type\\n *    `input` and others.\\n */\\nbutton,\\nhtml input[type=\\\"button\\\"],\\ninput[type=\\\"reset\\\"],\\ninput[type=\\\"submit\\\"] {\\n  -webkit-appearance: button;\\n  /* 2 */\\n  cursor: pointer;\\n  /* 3 */\\n}\\n\\n/**\\n * Re-set default cursor for disabled elements.\\n */\\nbutton[disabled],\\nhtml input[disabled] {\\n  cursor: default;\\n}\\n\\n/**\\n * Remove inner padding and border in Firefox 4+.\\n */\\nbutton::-moz-focus-inner,\\ninput::-moz-focus-inner {\\n  border: 0;\\n  padding: 0;\\n}\\n\\n/**\\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\\n * the UA stylesheet.\\n */\\ninput {\\n  line-height: normal;\\n}\\n\\n/**\\n * It's recommended that you don't attempt to style these elements.\\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\\n *\\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\\n * 2. Remove excess padding in IE 8/9/10.\\n */\\ninput[type=\\\"checkbox\\\"],\\ninput[type=\\\"radio\\\"] {\\n  box-sizing: border-box;\\n  /* 1 */\\n  padding: 0;\\n  /* 2 */\\n}\\n\\n/**\\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\\n * `font-size` values of the `input`, it causes the cursor style of the\\n * decrement button to change from `default` to `text`.\\n */\\ninput[type=\\\"number\\\"]::-webkit-inner-spin-button,\\ninput[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n  height: auto;\\n}\\n\\n/**\\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\\n */\\ninput[type=\\\"search\\\"] {\\n  -webkit-appearance: textfield;\\n  /* 1 */\\n  box-sizing: content-box;\\n  /* 2 */\\n}\\n\\n/**\\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\\n * Safari (but not Chrome) clips the cancel button when the search input has\\n * padding (and `textfield` appearance).\\n */\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button,\\ninput[type=\\\"search\\\"]::-webkit-search-decoration {\\n  -webkit-appearance: none;\\n}\\n\\n/**\\n * Define consistent border, margin, and padding.\\n */\\nfieldset {\\n  border: 1px solid #c0c0c0;\\n  margin: 0 2px;\\n  padding: 0.35em 0.625em 0.75em;\\n}\\n\\n/**\\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\\n */\\nlegend {\\n  border: 0;\\n  /* 1 */\\n  padding: 0;\\n  /* 2 */\\n}\\n\\n/**\\n * Remove default vertical scrollbar in IE 8/9/10/11.\\n */\\ntextarea {\\n  overflow: auto;\\n}\\n\\n/**\\n * Don't inherit the `font-weight` (applied by a rule above).\\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\\n */\\noptgroup {\\n  font-weight: bold;\\n}\\n\\n/* Tables\\n   ========================================================================== */\\n/**\\n * Remove most spacing between table cells.\\n */\\ntable {\\n  border-collapse: collapse;\\n  border-spacing: 0;\\n}\\n\\ntd,\\nth {\\n  padding: 0;\\n}\\n\"],\"sourceRoot\":\"webpack://\"}]);\n\n// exports\n; module.exports = exports.locals; module.exports._style = exports.toString()"
  }
}

Error:

Error: Cannot find module '-!./../node_modules/css-loader/index.js?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!./../node_modules/autoprefixer-loader/index.js?browsers=last 2 version!./../node_modules/sass-loader/index.js?outputStyle=expanded&sourceMap=true&sourceMapContents=true!normalize.css/normalize.css'
    at Function.Module._resolveFilename (module.js:337:15)
    at Function.Module._load (module.js:287:25)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (C:\Users\david\www\projects\STI\v3.1\assets\index.scss:3:11)
    at Module._compile (module.js:425:26)
    at Object.Module._extensions.(anonymous function) [as .scss] (C:\Users\david\www\projects\STI\v3.1\node_modules\webpack-isomorphic-tools\babel-transpiled-modules\tools\node-hook.js:100:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
Production:
{"javascript":{"app":"/dist/app-0ccfdbf1209807330568.js"},"styles":{"app":"/dist/app-0ccfdbf1209807330568.css"},"assets":{"./assets/index.scss":"// removed by extract-text-webpack-plugin","./src/common/pages/App/App.scss":"// removed by extract-text-webpack-plugin\nmodule.exports = {\"content\":\"HT6COZRgtOuqJHvvUI2XY\"};"}}

Error:

C:\Users\david\www\projects\STI\v3.1\assets\index.scss:2
});
^

SyntaxError: Unexpected token }
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:404:25)
    at Object.Module._extensions.(anonymous function) [as .scss] (C:\Users\david\www\projects\STI\v3.1\node_modules\webpack-isomorphic-tools\babel-transpiled-modules\tools\node-hook.js:100:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (C:/Users/david/www/projects/STI/v3.1/src/common/pages/App/App.react.js:3:38)
    at Module._compile (module.js:425:26)
    at normalLoader (C:\Users\david\www\projects\STI\v3.1\node_modules\babel-core\lib\api\register\node.js:199:5)
    at Object.require.extensions.(anonymous function) [as .js] (C:\Users\david\www\projects\STI\v3.1\node_modules\babel-core\lib\api\register\node.js:216:7)

OK

Development:
{
  "javascript": {
    "app": "http://localhost:8082/dist/app-2a2cf7557cd6e4a3d05d.js"
  },
  "styles": {},
  "assets": {
    "./assets/index.scss": {},
    "./src/common/pages/App/App.scss": {
      "content": "content___HT6CO"
    },
    "./~/basscss-base-reset/index.css": {},
    "./~/normalize.css/normalize.css": {}
  }
}
Production:
{"javascript":{"app":"/dist/app-0ccfdbf1209807330568.js"},"styles":{"app":"/dist/app-0ccfdbf1209807330568.css"},"assets":{"./assets/index.scss":{},"./src/common/pages/App/App.scss":{"content":"HT6COZRgtOuqJHvvUI2XY"}}}
@catamphetamine
Copy link
Owner

Hmm, yes, in your assets you have this require:

  "assets": {
    "./assets/index.scss": "exports = module.exports = require(\"./../node_modules/css-loader/lib/css-base.js\")();\n// imports\nexports.i(require(\"-!./../node_modules/css-loader/index.js?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!./../node_modules/autoprefixer-loader/index.js?browsers=last 2 version!./../node_modules/sass-loader/index.js?outputStyle=expanded&sourceMap=true&sourceMapContents=true!normalize.css/normalize.css\")

When eval()uating the asset source code it tries to require() that file but fails to do so (Error: Cannot find module) because Node.js can only require() modules which exist on disk.
https://github.com/nodejs/node/blob/master/lib/module.js#L388-L390
Here's the error:
https://github.com/nodejs/node/blob/master/lib/module.js#L335-L340

Theoretically I could extend the Module._findPath function
https://github.com/nodejs/node/blob/master/lib/module.js#L126
with something like this:

var original = Module._findPath
Module._findPath = function(request, paths) {
  var filename = original.apply(this, arguments)
  if (filename === false) {
    // then try to resolve this path in `webpack-assets.json`
  }
}

Is module with name -!./../node_modules/css-loader/index.js?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!./../node_modules/autoprefixer-loader/index.js?browsers=last 2 version!./../node_modules/sass-loader/index.js?outputStyle=expanded&sourceMap=true&sourceMapContents=true!normalize.css/normalize.css present in your webpack-stats.debug.json?

@catamphetamine
Copy link
Owner

In production the other error is because:

"./assets/index.scss":"// removed by extract-text-webpack-plugin"

And it seems to be a bug in webpack-isomoprhic-tools, I'll have a look.

@solcik
Copy link
Author

solcik commented Oct 31, 2015

This works great...

if (module.source) {
  const regex = options.development ? /exports\.locals = ((.|\n)+);/ : /module\.exports = ((.|\n)+);/;
  const match = module.source.match(regex);
  return match ? JSON.parse(match[1]) : {};
}

@catamphetamine
Copy link
Owner

Ok, I see, that should work, yes.

I'll leave this for tomorrow.
In the meantime, can you check if in webpack-stats.debug.json there is a module with name equal to

-!./../node_modules/css-loader/index.js?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!./../node_modules/autoprefixer-loader/index.js?browsers=last 2 version!./../node_modules/sass-loader/index.js?outputStyle=expanded&sourceMap=true&sourceMapContents=true!normalize.css/normalize.css

?

Or equal to a substring, maybe.

webpack-stats.debug.json is created when you set debug: true flag

@solcik
Copy link
Author

solcik commented Oct 31, 2015

If I comment out normalize and basscss in ./assets/index.scss

./assets/index.scss

// @import 'normalize.css/normalize.css';
// @import 'basscss-base-reset/index.css';

:global {
  body {
    background-color: #FFFFFF;
  }
}

./src/common/pages/App/App.scss

.content {
  margin: 50px 0; // for fixed navbar
}
[webpack-isomorphic-tools] [debug] entering development mode
[webpack-isomorphic-tools] [debug] registering require() hooks for assets
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.jpeg
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.jpg
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.png
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.gif
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.svg
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.ttf
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.woff
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.woff2
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.svg
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.less
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.scss
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.sass
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.styl
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.css
[webpack-isomorphic-tools] [debug] require() called for C:\Users\david\www\projects\STI\v3.1\assets\index.scss
[webpack-isomorphic-tools] [debug]  requiring ./assets/index.scss
C:\Users\david\www\projects\STI\v3.1\assets\index.scss:9
; module.exports = exports.locals; module.exports._style = exports.toString()
                                                         ^

TypeError: Cannot set property '_style' of undefined
    at Object.<anonymous> (C:\Users\david\www\projects\STI\v3.1\assets\index.scss:9:58)
    at Module._compile (module.js:425:26)
    at Object.Module._extensions.(anonymous function) [as .scss] (C:\Users\david\www\projects\STI\v3.1\node_modules\webpack-isomorphic-tools\babel-transpiled-modules\tools\node-hook.js:100:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (C:/Users/david/www/projects/STI/v3.1/src/common/pages/App/App.react.js:3:38)
    at Module._compile (module.js:425:26)
    at normalLoader (C:\Users\david\www\projects\STI\v3.1\node_modules\babel-core\lib\api\register\node.js:199:5)
    at Object.require.extensions.(anonymous function) [as .js] (C:\Users\david\www\projects\STI\v3.1\node_modules\babel-core\lib\api\register\node.js:216:7)

@catamphetamine
Copy link
Owner

Yes, I've just fixed this small bug, rolling out a release

@catamphetamine
Copy link
Owner

Released v2.0.2
Can you try npm install webpack-isomorphic-tools@latest --save and see if that small bug is gone?

@solcik
Copy link
Author

solcik commented Oct 31, 2015

ok,

TypeError: Cannot set property '_style' of undefined gone.

npm install webpack-isomorphic-tools@latest --save

└── webpack-isomorphic-tools@2.0.2

dev

{
  "javascript": {
    "app": "http://localhost:8082/dist/app-1cb34d22d279fdb30639.js"
  },
  "styles": {},
  "assets": {
    "./assets/index.scss": "exports = module.exports = require(\"./../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"body {\\n  background-color: #FFFFFF;\\n}\\n\", \"\", {\"version\":3,\"sources\":[\"/./assets/assets/index.scss\"],\"names\":[],\"mappings\":\"AAMA;EAEI,0BAA0B;CAC3B\",\"file\":\"index.scss\",\"sourcesContent\":[\"// @import 'normalize.css/normalize.css';\\n// @import 'basscss-base-reset/index.css';\\n// @import 'basscss/css/basscss.css';\\n\\n// @import './styles/Select.scss';\\n\\n:global {\\n  body {\\n    background-color: #FFFFFF;\\n  }\\n}\\n\"],\"sourceRoot\":\"webpack://\"}]);\n\n// exports\n\n module.exports = exports.locals || {}; module.exports._style = exports.toString();",
    "./src/common/pages/App/App.scss": "exports = module.exports = require(\"./../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".content___HT6CO {\\n  margin: 150px 0;\\n}\\n\", \"\", {\"version\":3,\"sources\":[\"/./src/common/pages/App/src/common/pages/src/common/pages/App/App.scss\"],\"names\":[],\"mappings\":\"AAAA;EACE,gBAAgB;CACjB\",\"file\":\"App.scss\",\"sourcesContent\":[\".content {\\n  margin: 150px 0; // for fixed navbar\\n}\\n\"],\"sourceRoot\":\"webpack://\"}]);\n\n// exports\nexports.locals = {\n\t\"content\": \"content___HT6CO\"\n};\n module.exports = exports.locals || {}; module.exports._style = exports.toString();"
  }
}

production

{"javascript":{"app":"/dist/app-341ab6df016d88d9fdbe.js"},"styles":{"app":"/dist/app-341ab6df016d88d9fdbe.css"},"assets":{"./assets/index.scss":"// removed by extract-text-webpack-plugin","./src/common/pages/App/App.scss":"// removed by extract-text-webpack-plugin\nmodule.exports = {\"content\":\"HT6COZRgtOuqJHvvUI2XY\"};"}}

@catamphetamine
Copy link
Owner

ok.

So, what about that normalize.css - is it present in webpack-stats.debug.json?
Specifically, the module with name equal to

-!./../node_modules/css-loader/index.js?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!./../node_modules/autoprefixer-loader/index.js?browsers=last 2 version!./../node_modules/sass-loader/index.js?outputStyle=expanded&sourceMap=true&sourceMapContents=true!normalize.css/normalize.css

Or equal to a substring, maybe.

webpack-stats.debug.json is created when you set debug: true flag

Alternatively you can upload webpack-stats.debug.json to let me see it if you don't want to search it.
(the file must be generated with the two @imports uncommented)

@solcik
Copy link
Author

solcik commented Oct 31, 2015

Here is the file.

https://gist.github.com/a900abf2bfe975cd70c2

Maybe this one is what you are looking for?

{
      "id": 717,
      "identifier": "C:\\Users\\david\\www\\projects\\STI\\v3.1\\node_modules\\css-loader\\index.js?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!C:\\Users\\david\\www\\projects\\STI\\v3.1\\node_modules\\autoprefixer-loader\\index.js?browsers=last 2 version!C:\\Users\\david\\www\\projects\\STI\\v3.1\\node_modules\\sass-loader\\index.js?outputStyle=expanded&sourceMap=true&sourceMapContents=true!C:\\Users\\david\\www\\projects\\STI\\v3.1\\node_modules\\normalize.css\\normalize.css",
      "name": "./~/css-loader?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!./~/autoprefixer-loader?browsers=last 2 version!./~/sass-loader?outputStyle=expanded&sourceMap=true&sourceMapContents=true!./~/normalize.css/normalize.css",
      "index": 1064,
      "index2": 1058,
      "size": 26689,
      "cacheable": true,
      "built": true,
      "optional": false,
      "prefetched": false,
      "chunks": [
        0
      ],
      "assets": [],
      "issuer": "C:\\Users\\david\\www\\projects\\STI\\v3.1\\node_modules\\css-loader\\index.js?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!C:\\Users\\david\\www\\projects\\STI\\v3.1\\node_modules\\autoprefixer-loader\\index.js?browsers=last 2 version!C:\\Users\\david\\www\\projects\\STI\\v3.1\\node_modules\\sass-loader\\index.js?outputStyle=expanded&sourceMap=true&sourceMapContents=true!C:\\Users\\david\\www\\projects\\STI\\v3.1\\assets\\index.scss",
      "failed": false,
      "errors": 0,
      "warnings": 0,
      "reasons": [
        {
          "moduleId": 176,
          "moduleIdentifier": "C:\\Users\\david\\www\\projects\\STI\\v3.1\\node_modules\\css-loader\\index.js?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!C:\\Users\\david\\www\\projects\\STI\\v3.1\\node_modules\\autoprefixer-loader\\index.js?browsers=last 2 version!C:\\Users\\david\\www\\projects\\STI\\v3.1\\node_modules\\sass-loader\\index.js?outputStyle=expanded&sourceMap=true&sourceMapContents=true!C:\\Users\\david\\www\\projects\\STI\\v3.1\\assets\\index.scss",
          "module": "./~/css-loader?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!./~/autoprefixer-loader?browsers=last 2 version!./~/sass-loader?outputStyle=expanded&sourceMap=true&sourceMapContents=true!./assets/index.scss",
          "moduleName": "./~/css-loader?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!./~/autoprefixer-loader?browsers=last 2 version!./~/sass-loader?outputStyle=expanded&sourceMap=true&sourceMapContents=true!./assets/index.scss",
          "type": "cjs require",
          "userRequest": "-!./../node_modules/css-loader/index.js?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!./../node_modules/autoprefixer-loader/index.js?browsers=last 2 version!./../node_modules/sass-loader/index.js?outputStyle=expanded&sourceMap=true&sourceMapContents=true!normalize.css/normalize.css",
          "loc": "3:10-332"
        }
      ],
      "source": "exports = module.exports = require(\"./../css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\\n/**\\n * 1. Set default font family to sans-serif.\\n * 2. Prevent iOS and IE text size adjust after device orientation change,\\n *    without disabling user zoom.\\n */\\nhtml {\\n  font-family: sans-serif;\\n  /* 1 */\\n  -ms-text-size-adjust: 100%;\\n  /* 2 */\\n  -webkit-text-size-adjust: 100%;\\n  /* 2 */\\n}\\n\\n/**\\n * Remove default margin.\\n */\\nbody {\\n  margin: 0;\\n}\\n\\n/* HTML5 display definitions\\n   ========================================================================== */\\n/**\\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\\n * and Firefox.\\n * Correct `block` display not defined for `main` in IE 11.\\n */\\narticle,\\naside,\\ndetails,\\nfigcaption,\\nfigure,\\nfooter,\\nheader,\\nhgroup,\\nmain,\\nmenu,\\nnav,\\nsection,\\nsummary {\\n  display: block;\\n}\\n\\n/**\\n * 1. Correct `inline-block` display not defined in IE 8/9.\\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\\n */\\naudio,\\ncanvas,\\nprogress,\\nvideo {\\n  display: inline-block;\\n  /* 1 */\\n  vertical-align: baseline;\\n  /* 2 */\\n}\\n\\n/**\\n * Prevent modern browsers from displaying `audio` without controls.\\n * Remove excess height in iOS 5 devices.\\n */\\naudio:not([controls]) {\\n  display: none;\\n  height: 0;\\n}\\n\\n/**\\n * Address `[hidden]` styling not present in IE 8/9/10.\\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\\n */\\n[hidden],\\ntemplate {\\n  display: none;\\n}\\n\\n/* Links\\n   ========================================================================== */\\n/**\\n * Remove the gray background color from active links in IE 10.\\n */\\na {\\n  background-color: transparent;\\n}\\n\\n/**\\n * Improve readability of focused elements when they are also in an\\n * active/hover state.\\n */\\na:active,\\na:hover {\\n  outline: 0;\\n}\\n\\n/* Text-level semantics\\n   ========================================================================== */\\n/**\\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\\n */\\nabbr[title] {\\n  border-bottom: 1px dotted;\\n}\\n\\n/**\\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\\n */\\nb,\\nstrong {\\n  font-weight: bold;\\n}\\n\\n/**\\n * Address styling not present in Safari and Chrome.\\n */\\ndfn {\\n  font-style: italic;\\n}\\n\\n/**\\n * Address variable `h1` font-size and margin within `section` and `article`\\n * contexts in Firefox 4+, Safari, and Chrome.\\n */\\nh1 {\\n  font-size: 2em;\\n  margin: 0.67em 0;\\n}\\n\\n/**\\n * Address styling not present in IE 8/9.\\n */\\nmark {\\n  background: #ff0;\\n  color: #000;\\n}\\n\\n/**\\n * Address inconsistent and variable font size in all browsers.\\n */\\nsmall {\\n  font-size: 80%;\\n}\\n\\n/**\\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\\n */\\nsub,\\nsup {\\n  font-size: 75%;\\n  line-height: 0;\\n  position: relative;\\n  vertical-align: baseline;\\n}\\n\\nsup {\\n  top: -0.5em;\\n}\\n\\nsub {\\n  bottom: -0.25em;\\n}\\n\\n/* Embedded content\\n   ========================================================================== */\\n/**\\n * Remove border when inside `a` element in IE 8/9/10.\\n */\\nimg {\\n  border: 0;\\n}\\n\\n/**\\n * Correct overflow not hidden in IE 9/10/11.\\n */\\nsvg:not(:root) {\\n  overflow: hidden;\\n}\\n\\n/* Grouping content\\n   ========================================================================== */\\n/**\\n * Address margin not present in IE 8/9 and Safari.\\n */\\nfigure {\\n  margin: 1em 40px;\\n}\\n\\n/**\\n * Address differences between Firefox and other browsers.\\n */\\nhr {\\n  box-sizing: content-box;\\n  height: 0;\\n}\\n\\n/**\\n * Contain overflow in all browsers.\\n */\\npre {\\n  overflow: auto;\\n}\\n\\n/**\\n * Address odd `em`-unit font size rendering in all browsers.\\n */\\ncode,\\nkbd,\\npre,\\nsamp {\\n  font-family: monospace, monospace;\\n  font-size: 1em;\\n}\\n\\n/* Forms\\n   ========================================================================== */\\n/**\\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\\n * styling of `select`, unless a `border` property is set.\\n */\\n/**\\n * 1. Correct color not being inherited.\\n *    Known issue: affects color of disabled elements.\\n * 2. Correct font properties not being inherited.\\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\\n */\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n  color: inherit;\\n  /* 1 */\\n  font: inherit;\\n  /* 2 */\\n  margin: 0;\\n  /* 3 */\\n}\\n\\n/**\\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\\n */\\nbutton {\\n  overflow: visible;\\n}\\n\\n/**\\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\\n * All other form control elements do not inherit `text-transform` values.\\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\\n * Correct `select` style inheritance in Firefox.\\n */\\nbutton,\\nselect {\\n  text-transform: none;\\n}\\n\\n/**\\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\\n *    and `video` controls.\\n * 2. Correct inability to style clickable `input` types in iOS.\\n * 3. Improve usability and consistency of cursor style between image-type\\n *    `input` and others.\\n */\\nbutton,\\nhtml input[type=\\\"button\\\"],\\ninput[type=\\\"reset\\\"],\\ninput[type=\\\"submit\\\"] {\\n  -webkit-appearance: button;\\n  /* 2 */\\n  cursor: pointer;\\n  /* 3 */\\n}\\n\\n/**\\n * Re-set default cursor for disabled elements.\\n */\\nbutton[disabled],\\nhtml input[disabled] {\\n  cursor: default;\\n}\\n\\n/**\\n * Remove inner padding and border in Firefox 4+.\\n */\\nbutton::-moz-focus-inner,\\ninput::-moz-focus-inner {\\n  border: 0;\\n  padding: 0;\\n}\\n\\n/**\\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\\n * the UA stylesheet.\\n */\\ninput {\\n  line-height: normal;\\n}\\n\\n/**\\n * It's recommended that you don't attempt to style these elements.\\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\\n *\\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\\n * 2. Remove excess padding in IE 8/9/10.\\n */\\ninput[type=\\\"checkbox\\\"],\\ninput[type=\\\"radio\\\"] {\\n  box-sizing: border-box;\\n  /* 1 */\\n  padding: 0;\\n  /* 2 */\\n}\\n\\n/**\\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\\n * `font-size` values of the `input`, it causes the cursor style of the\\n * decrement button to change from `default` to `text`.\\n */\\ninput[type=\\\"number\\\"]::-webkit-inner-spin-button,\\ninput[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n  height: auto;\\n}\\n\\n/**\\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\\n */\\ninput[type=\\\"search\\\"] {\\n  -webkit-appearance: textfield;\\n  /* 1 */\\n  box-sizing: content-box;\\n  /* 2 */\\n}\\n\\n/**\\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\\n * Safari (but not Chrome) clips the cancel button when the search input has\\n * padding (and `textfield` appearance).\\n */\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button,\\ninput[type=\\\"search\\\"]::-webkit-search-decoration {\\n  -webkit-appearance: none;\\n}\\n\\n/**\\n * Define consistent border, margin, and padding.\\n */\\nfieldset {\\n  border: 1px solid #c0c0c0;\\n  margin: 0 2px;\\n  padding: 0.35em 0.625em 0.75em;\\n}\\n\\n/**\\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\\n */\\nlegend {\\n  border: 0;\\n  /* 1 */\\n  padding: 0;\\n  /* 2 */\\n}\\n\\n/**\\n * Remove default vertical scrollbar in IE 8/9/10/11.\\n */\\ntextarea {\\n  overflow: auto;\\n}\\n\\n/**\\n * Don't inherit the `font-weight` (applied by a rule above).\\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\\n */\\noptgroup {\\n  font-weight: bold;\\n}\\n\\n/* Tables\\n   ========================================================================== */\\n/**\\n * Remove most spacing between table cells.\\n */\\ntable {\\n  border-collapse: collapse;\\n  border-spacing: 0;\\n}\\n\\ntd,\\nth {\\n  padding: 0;\\n}\\n\", \"\", {\"version\":3,\"sources\":[\"/./node_modules/normalize.css/node_modules/node_modules/normalize.css/normalize.css\",\"/./node_modules/normalize.css/node_modules/normalize.css/normalize.css\"],\"names\":[],\"mappings\":\"AAAA,4EAA4E;AAE5E;;;;GAIG;AAEH;EACE,wBAAwB;EAAE,OAAO;EACjC,2BAA2B;EAAE,OAAO;EACpC,+BAA+B;EAAE,OAAO;CACzC;;AAED;;GAEG;AAEH;EACE,UAAU;CACX;;AAED;gFACgF;AAEhF;;;;;GAKG;AAEH;;;;;;;;;;;;;EAaE,eAAe;CAChB;;AAED;;;GAGG;AAEH;;;;EAIE,sBAAsB;EAAE,OAAO;EAC/B,yBAAyB;EAAE,OAAO;CACnC;;AAED;;;GAGG;AAEH;EACE,cAAc;EACd,UAAU;CACX;;AAED;;;GAGG;ACDH;;EDKE,cAAc;CACf;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,8BAA8B;CAC/B;;AAED;;;GAGG;AAEH;;EAEE,WAAW;CACZ;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,0BAA0B;CAC3B;;AAED;;GAEG;AAEH;;EAEE,kBAAkB;CACnB;;AAED;;GAEG;AAEH;EACE,mBAAmB;CACpB;;AAED;;;GAGG;AAEH;EACE,eAAe;EACf,iBAAiB;CAClB;;AAED;;GAEG;AAEH;EACE,iBAAiB;EACjB,YAAY;CACb;;AAED;;GAEG;AAEH;EACE,eAAe;CAChB;;AAED;;GAEG;AAEH;;EAEE,eAAe;EACf,eAAe;EACf,mBAAmB;EACnB,yBAAyB;CAC1B;;AAED;EACE,YAAY;CACb;;AAED;EACE,gBAAgB;CACjB;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,UAAU;CACX;;AAED;;GAEG;AAEH;EACE,iBAAiB;CAClB;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,iBAAiB;CAClB;;AAED;;GAEG;AAEH;EACE,wBAAwB;EACxB,UAAU;CACX;;AAED;;GAEG;AAEH;EACE,eAAe;CAChB;;AAED;;GAEG;AAEH;;;;EAIE,kCAAkC;EAClC,eAAe;CAChB;;AAED;gFACgF;AAEhF;;;GAGG;AAEH;;;;;GAKG;AAEH;;;;;EAKE,eAAe;EAAE,OAAO;EACxB,cAAc;EAAE,OAAO;EACvB,UAAU;EAAE,OAAO;CACpB;;AAED;;GAEG;AAEH;EACE,kBAAkB;CACnB;;AAED;;;;;GAKG;AAEH;;EAEE,qBAAqB;CACtB;;AAED;;;;;;GAMG;AAEH;;;;EAIE,2BAA2B;EAAE,OAAO;EACpC,gBAAgB;EAAE,OAAO;CAC1B;;AAED;;GAEG;AAEH;;EAEE,gBAAgB;CACjB;;AAED;;GAEG;AAEH;;EAEE,UAAU;EACV,WAAW;CACZ;;AAED;;;GAGG;AAEH;EACE,oBAAoB;CACrB;;AAED;;;;;;GAMG;AAEH;;EAEE,uBAAuB;EAAE,OAAO;EAChC,WAAW;EAAE,OAAO;CACrB;;AAED;;;;GAIG;AAEH;;EAEE,aAAa;CACd;;AAED;;;GAGG;AAEH;EACE,8BAA8B;EAAE,OAAO;EACvC,wBAAwB;EAAE,OAAO;CAClC;;AAED;;;;GAIG;AAEH;;EAEE,yBAAyB;CAC1B;;AAED;;GAEG;AAEH;EACE,0BAA0B;EAC1B,cAAc;EACd,+BAA+B;CAChC;;AAED;;;GAGG;AAEH;EACE,UAAU;EAAE,OAAO;EACnB,WAAW;EAAE,OAAO;CACrB;;AAED;;GAEG;AAEH;EACE,eAAe;CAChB;;AAED;;;GAGG;AAEH;EACE,kBAAkB;CACnB;;AAED;gFACgF;AAEhF;;GAEG;AAEH;EACE,0BAA0B;EAC1B,kBAAkB;CACnB;;AAED;;EAEE,WAAW;CACZ\",\"file\":\"normalize.css\",\"sourcesContent\":[\"/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\\n\\n/**\\n * 1. Set default font family to sans-serif.\\n * 2. Prevent iOS and IE text size adjust after device orientation change,\\n *    without disabling user zoom.\\n */\\n\\nhtml {\\n  font-family: sans-serif; /* 1 */\\n  -ms-text-size-adjust: 100%; /* 2 */\\n  -webkit-text-size-adjust: 100%; /* 2 */\\n}\\n\\n/**\\n * Remove default margin.\\n */\\n\\nbody {\\n  margin: 0;\\n}\\n\\n/* HTML5 display definitions\\n   ========================================================================== */\\n\\n/**\\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\\n * and Firefox.\\n * Correct `block` display not defined for `main` in IE 11.\\n */\\n\\narticle,\\naside,\\ndetails,\\nfigcaption,\\nfigure,\\nfooter,\\nheader,\\nhgroup,\\nmain,\\nmenu,\\nnav,\\nsection,\\nsummary {\\n  display: block;\\n}\\n\\n/**\\n * 1. Correct `inline-block` display not defined in IE 8/9.\\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\\n */\\n\\naudio,\\ncanvas,\\nprogress,\\nvideo {\\n  display: inline-block; /* 1 */\\n  vertical-align: baseline; /* 2 */\\n}\\n\\n/**\\n * Prevent modern browsers from displaying `audio` without controls.\\n * Remove excess height in iOS 5 devices.\\n */\\n\\naudio:not([controls]) {\\n  display: none;\\n  height: 0;\\n}\\n\\n/**\\n * Address `[hidden]` styling not present in IE 8/9/10.\\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\\n */\\n\\n[hidden],\\ntemplate {\\n  display: none;\\n}\\n\\n/* Links\\n   ========================================================================== */\\n\\n/**\\n * Remove the gray background color from active links in IE 10.\\n */\\n\\na {\\n  background-color: transparent;\\n}\\n\\n/**\\n * Improve readability of focused elements when they are also in an\\n * active/hover state.\\n */\\n\\na:active,\\na:hover {\\n  outline: 0;\\n}\\n\\n/* Text-level semantics\\n   ========================================================================== */\\n\\n/**\\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\\n */\\n\\nabbr[title] {\\n  border-bottom: 1px dotted;\\n}\\n\\n/**\\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\\n */\\n\\nb,\\nstrong {\\n  font-weight: bold;\\n}\\n\\n/**\\n * Address styling not present in Safari and Chrome.\\n */\\n\\ndfn {\\n  font-style: italic;\\n}\\n\\n/**\\n * Address variable `h1` font-size and margin within `section` and `article`\\n * contexts in Firefox 4+, Safari, and Chrome.\\n */\\n\\nh1 {\\n  font-size: 2em;\\n  margin: 0.67em 0;\\n}\\n\\n/**\\n * Address styling not present in IE 8/9.\\n */\\n\\nmark {\\n  background: #ff0;\\n  color: #000;\\n}\\n\\n/**\\n * Address inconsistent and variable font size in all browsers.\\n */\\n\\nsmall {\\n  font-size: 80%;\\n}\\n\\n/**\\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\\n */\\n\\nsub,\\nsup {\\n  font-size: 75%;\\n  line-height: 0;\\n  position: relative;\\n  vertical-align: baseline;\\n}\\n\\nsup {\\n  top: -0.5em;\\n}\\n\\nsub {\\n  bottom: -0.25em;\\n}\\n\\n/* Embedded content\\n   ========================================================================== */\\n\\n/**\\n * Remove border when inside `a` element in IE 8/9/10.\\n */\\n\\nimg {\\n  border: 0;\\n}\\n\\n/**\\n * Correct overflow not hidden in IE 9/10/11.\\n */\\n\\nsvg:not(:root) {\\n  overflow: hidden;\\n}\\n\\n/* Grouping content\\n   ========================================================================== */\\n\\n/**\\n * Address margin not present in IE 8/9 and Safari.\\n */\\n\\nfigure {\\n  margin: 1em 40px;\\n}\\n\\n/**\\n * Address differences between Firefox and other browsers.\\n */\\n\\nhr {\\n  box-sizing: content-box;\\n  height: 0;\\n}\\n\\n/**\\n * Contain overflow in all browsers.\\n */\\n\\npre {\\n  overflow: auto;\\n}\\n\\n/**\\n * Address odd `em`-unit font size rendering in all browsers.\\n */\\n\\ncode,\\nkbd,\\npre,\\nsamp {\\n  font-family: monospace, monospace;\\n  font-size: 1em;\\n}\\n\\n/* Forms\\n   ========================================================================== */\\n\\n/**\\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\\n * styling of `select`, unless a `border` property is set.\\n */\\n\\n/**\\n * 1. Correct color not being inherited.\\n *    Known issue: affects color of disabled elements.\\n * 2. Correct font properties not being inherited.\\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\\n */\\n\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n  color: inherit; /* 1 */\\n  font: inherit; /* 2 */\\n  margin: 0; /* 3 */\\n}\\n\\n/**\\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\\n */\\n\\nbutton {\\n  overflow: visible;\\n}\\n\\n/**\\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\\n * All other form control elements do not inherit `text-transform` values.\\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\\n * Correct `select` style inheritance in Firefox.\\n */\\n\\nbutton,\\nselect {\\n  text-transform: none;\\n}\\n\\n/**\\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\\n *    and `video` controls.\\n * 2. Correct inability to style clickable `input` types in iOS.\\n * 3. Improve usability and consistency of cursor style between image-type\\n *    `input` and others.\\n */\\n\\nbutton,\\nhtml input[type=\\\"button\\\"], /* 1 */\\ninput[type=\\\"reset\\\"],\\ninput[type=\\\"submit\\\"] {\\n  -webkit-appearance: button; /* 2 */\\n  cursor: pointer; /* 3 */\\n}\\n\\n/**\\n * Re-set default cursor for disabled elements.\\n */\\n\\nbutton[disabled],\\nhtml input[disabled] {\\n  cursor: default;\\n}\\n\\n/**\\n * Remove inner padding and border in Firefox 4+.\\n */\\n\\nbutton::-moz-focus-inner,\\ninput::-moz-focus-inner {\\n  border: 0;\\n  padding: 0;\\n}\\n\\n/**\\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\\n * the UA stylesheet.\\n */\\n\\ninput {\\n  line-height: normal;\\n}\\n\\n/**\\n * It's recommended that you don't attempt to style these elements.\\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\\n *\\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\\n * 2. Remove excess padding in IE 8/9/10.\\n */\\n\\ninput[type=\\\"checkbox\\\"],\\ninput[type=\\\"radio\\\"] {\\n  box-sizing: border-box; /* 1 */\\n  padding: 0; /* 2 */\\n}\\n\\n/**\\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\\n * `font-size` values of the `input`, it causes the cursor style of the\\n * decrement button to change from `default` to `text`.\\n */\\n\\ninput[type=\\\"number\\\"]::-webkit-inner-spin-button,\\ninput[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n  height: auto;\\n}\\n\\n/**\\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\\n */\\n\\ninput[type=\\\"search\\\"] {\\n  -webkit-appearance: textfield; /* 1 */\\n  box-sizing: content-box; /* 2 */\\n}\\n\\n/**\\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\\n * Safari (but not Chrome) clips the cancel button when the search input has\\n * padding (and `textfield` appearance).\\n */\\n\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button,\\ninput[type=\\\"search\\\"]::-webkit-search-decoration {\\n  -webkit-appearance: none;\\n}\\n\\n/**\\n * Define consistent border, margin, and padding.\\n */\\n\\nfieldset {\\n  border: 1px solid #c0c0c0;\\n  margin: 0 2px;\\n  padding: 0.35em 0.625em 0.75em;\\n}\\n\\n/**\\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\\n */\\n\\nlegend {\\n  border: 0; /* 1 */\\n  padding: 0; /* 2 */\\n}\\n\\n/**\\n * Remove default vertical scrollbar in IE 8/9/10/11.\\n */\\n\\ntextarea {\\n  overflow: auto;\\n}\\n\\n/**\\n * Don't inherit the `font-weight` (applied by a rule above).\\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\\n */\\n\\noptgroup {\\n  font-weight: bold;\\n}\\n\\n/* Tables\\n   ========================================================================== */\\n\\n/**\\n * Remove most spacing between table cells.\\n */\\n\\ntable {\\n  border-collapse: collapse;\\n  border-spacing: 0;\\n}\\n\\ntd,\\nth {\\n  padding: 0;\\n}\\n\",\"/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */\\n/**\\n * 1. Set default font family to sans-serif.\\n * 2. Prevent iOS and IE text size adjust after device orientation change,\\n *    without disabling user zoom.\\n */\\nhtml {\\n  font-family: sans-serif;\\n  /* 1 */\\n  -ms-text-size-adjust: 100%;\\n  /* 2 */\\n  -webkit-text-size-adjust: 100%;\\n  /* 2 */\\n}\\n\\n/**\\n * Remove default margin.\\n */\\nbody {\\n  margin: 0;\\n}\\n\\n/* HTML5 display definitions\\n   ========================================================================== */\\n/**\\n * Correct `block` display not defined for any HTML5 element in IE 8/9.\\n * Correct `block` display not defined for `details` or `summary` in IE 10/11\\n * and Firefox.\\n * Correct `block` display not defined for `main` in IE 11.\\n */\\narticle,\\naside,\\ndetails,\\nfigcaption,\\nfigure,\\nfooter,\\nheader,\\nhgroup,\\nmain,\\nmenu,\\nnav,\\nsection,\\nsummary {\\n  display: block;\\n}\\n\\n/**\\n * 1. Correct `inline-block` display not defined in IE 8/9.\\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\\n */\\naudio,\\ncanvas,\\nprogress,\\nvideo {\\n  display: inline-block;\\n  /* 1 */\\n  vertical-align: baseline;\\n  /* 2 */\\n}\\n\\n/**\\n * Prevent modern browsers from displaying `audio` without controls.\\n * Remove excess height in iOS 5 devices.\\n */\\naudio:not([controls]) {\\n  display: none;\\n  height: 0;\\n}\\n\\n/**\\n * Address `[hidden]` styling not present in IE 8/9/10.\\n * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.\\n */\\n[hidden],\\ntemplate {\\n  display: none;\\n}\\n\\n/* Links\\n   ========================================================================== */\\n/**\\n * Remove the gray background color from active links in IE 10.\\n */\\na {\\n  background-color: transparent;\\n}\\n\\n/**\\n * Improve readability of focused elements when they are also in an\\n * active/hover state.\\n */\\na:active,\\na:hover {\\n  outline: 0;\\n}\\n\\n/* Text-level semantics\\n   ========================================================================== */\\n/**\\n * Address styling not present in IE 8/9/10/11, Safari, and Chrome.\\n */\\nabbr[title] {\\n  border-bottom: 1px dotted;\\n}\\n\\n/**\\n * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.\\n */\\nb,\\nstrong {\\n  font-weight: bold;\\n}\\n\\n/**\\n * Address styling not present in Safari and Chrome.\\n */\\ndfn {\\n  font-style: italic;\\n}\\n\\n/**\\n * Address variable `h1` font-size and margin within `section` and `article`\\n * contexts in Firefox 4+, Safari, and Chrome.\\n */\\nh1 {\\n  font-size: 2em;\\n  margin: 0.67em 0;\\n}\\n\\n/**\\n * Address styling not present in IE 8/9.\\n */\\nmark {\\n  background: #ff0;\\n  color: #000;\\n}\\n\\n/**\\n * Address inconsistent and variable font size in all browsers.\\n */\\nsmall {\\n  font-size: 80%;\\n}\\n\\n/**\\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\\n */\\nsub,\\nsup {\\n  font-size: 75%;\\n  line-height: 0;\\n  position: relative;\\n  vertical-align: baseline;\\n}\\n\\nsup {\\n  top: -0.5em;\\n}\\n\\nsub {\\n  bottom: -0.25em;\\n}\\n\\n/* Embedded content\\n   ========================================================================== */\\n/**\\n * Remove border when inside `a` element in IE 8/9/10.\\n */\\nimg {\\n  border: 0;\\n}\\n\\n/**\\n * Correct overflow not hidden in IE 9/10/11.\\n */\\nsvg:not(:root) {\\n  overflow: hidden;\\n}\\n\\n/* Grouping content\\n   ========================================================================== */\\n/**\\n * Address margin not present in IE 8/9 and Safari.\\n */\\nfigure {\\n  margin: 1em 40px;\\n}\\n\\n/**\\n * Address differences between Firefox and other browsers.\\n */\\nhr {\\n  box-sizing: content-box;\\n  height: 0;\\n}\\n\\n/**\\n * Contain overflow in all browsers.\\n */\\npre {\\n  overflow: auto;\\n}\\n\\n/**\\n * Address odd `em`-unit font size rendering in all browsers.\\n */\\ncode,\\nkbd,\\npre,\\nsamp {\\n  font-family: monospace, monospace;\\n  font-size: 1em;\\n}\\n\\n/* Forms\\n   ========================================================================== */\\n/**\\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\\n * styling of `select`, unless a `border` property is set.\\n */\\n/**\\n * 1. Correct color not being inherited.\\n *    Known issue: affects color of disabled elements.\\n * 2. Correct font properties not being inherited.\\n * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.\\n */\\nbutton,\\ninput,\\noptgroup,\\nselect,\\ntextarea {\\n  color: inherit;\\n  /* 1 */\\n  font: inherit;\\n  /* 2 */\\n  margin: 0;\\n  /* 3 */\\n}\\n\\n/**\\n * Address `overflow` set to `hidden` in IE 8/9/10/11.\\n */\\nbutton {\\n  overflow: visible;\\n}\\n\\n/**\\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\\n * All other form control elements do not inherit `text-transform` values.\\n * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.\\n * Correct `select` style inheritance in Firefox.\\n */\\nbutton,\\nselect {\\n  text-transform: none;\\n}\\n\\n/**\\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\\n *    and `video` controls.\\n * 2. Correct inability to style clickable `input` types in iOS.\\n * 3. Improve usability and consistency of cursor style between image-type\\n *    `input` and others.\\n */\\nbutton,\\nhtml input[type=\\\"button\\\"],\\ninput[type=\\\"reset\\\"],\\ninput[type=\\\"submit\\\"] {\\n  -webkit-appearance: button;\\n  /* 2 */\\n  cursor: pointer;\\n  /* 3 */\\n}\\n\\n/**\\n * Re-set default cursor for disabled elements.\\n */\\nbutton[disabled],\\nhtml input[disabled] {\\n  cursor: default;\\n}\\n\\n/**\\n * Remove inner padding and border in Firefox 4+.\\n */\\nbutton::-moz-focus-inner,\\ninput::-moz-focus-inner {\\n  border: 0;\\n  padding: 0;\\n}\\n\\n/**\\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\\n * the UA stylesheet.\\n */\\ninput {\\n  line-height: normal;\\n}\\n\\n/**\\n * It's recommended that you don't attempt to style these elements.\\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\\n *\\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\\n * 2. Remove excess padding in IE 8/9/10.\\n */\\ninput[type=\\\"checkbox\\\"],\\ninput[type=\\\"radio\\\"] {\\n  box-sizing: border-box;\\n  /* 1 */\\n  padding: 0;\\n  /* 2 */\\n}\\n\\n/**\\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\\n * `font-size` values of the `input`, it causes the cursor style of the\\n * decrement button to change from `default` to `text`.\\n */\\ninput[type=\\\"number\\\"]::-webkit-inner-spin-button,\\ninput[type=\\\"number\\\"]::-webkit-outer-spin-button {\\n  height: auto;\\n}\\n\\n/**\\n * 1. Address `appearance` set to `searchfield` in Safari and Chrome.\\n * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.\\n */\\ninput[type=\\\"search\\\"] {\\n  -webkit-appearance: textfield;\\n  /* 1 */\\n  box-sizing: content-box;\\n  /* 2 */\\n}\\n\\n/**\\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\\n * Safari (but not Chrome) clips the cancel button when the search input has\\n * padding (and `textfield` appearance).\\n */\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button,\\ninput[type=\\\"search\\\"]::-webkit-search-decoration {\\n  -webkit-appearance: none;\\n}\\n\\n/**\\n * Define consistent border, margin, and padding.\\n */\\nfieldset {\\n  border: 1px solid #c0c0c0;\\n  margin: 0 2px;\\n  padding: 0.35em 0.625em 0.75em;\\n}\\n\\n/**\\n * 1. Correct `color` not being inherited in IE 8/9/10/11.\\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\\n */\\nlegend {\\n  border: 0;\\n  /* 1 */\\n  padding: 0;\\n  /* 2 */\\n}\\n\\n/**\\n * Remove default vertical scrollbar in IE 8/9/10/11.\\n */\\ntextarea {\\n  overflow: auto;\\n}\\n\\n/**\\n * Don't inherit the `font-weight` (applied by a rule above).\\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\\n */\\noptgroup {\\n  font-weight: bold;\\n}\\n\\n/* Tables\\n   ========================================================================== */\\n/**\\n * Remove most spacing between table cells.\\n */\\ntable {\\n  border-collapse: collapse;\\n  border-spacing: 0;\\n}\\n\\ntd,\\nth {\\n  padding: 0;\\n}\\n\"],\"sourceRoot\":\"webpack://\"}]);\n\n// exports\n"
    },

@catamphetamine
Copy link
Owner

Yes, thanks, that's what was required.

So, tomorrow I'll implement some hacky require() logic to look through webpack-stats.debug.json and search there for either a module with such a name or for a module having a reason with such a userRequest (I guess the latter would be more correct).

@catamphetamine
Copy link
Owner

I'm finishing the fix for this.
Can you post me your index.scss for testing?

@solcik
Copy link
Author

solcik commented Nov 1, 2015

Problem is only with files from node_modules, local files are loaded normally.

https://github.com/necolas/normalize.css/
https://github.com/basscss/base-reset

./assets/index.scss

// FAIL
@import 'normalize.css/normalize.css';
// FAIL
@import 'basscss-base-reset/index.css';

// OK
@import './test.scss';
// OK
@import './test.css';

:global {
  body {
    background-color: #FFFFFF;
  }
}

.content {
  margin: 50px 0;
}

@catamphetamine
Copy link
Owner

Well, i've installed the npm module, but it says it's not found:

Module not found: Error: Cannot resolve 'file' or 'directory' ./normalize.css/normalize.css in G:\work\webapp\assets\sty
les
resolve file
  G:\work\webapp\assets\styles\normalize.css\normalize.css.json doesn't exist
  G:\work\webapp\assets\styles\normalize.css\normalize.css.js doesn't exist
  G:\work\webapp\assets\styles\normalize.css\normalize.css doesn't exist
resolve directory
  G:\work\webapp\assets\styles\normalize.css\normalize.css doesn't exist (directory default file)
  G:\work\webapp\assets\styles\normalize.css\normalize.css\package.json doesn't exist (directory description file)
[G:\work\webapp\assets\styles\normalize.css\normalize.css.json]
[G:\work\webapp\assets\styles\normalize.css\normalize.css.js]
[G:\work\webapp\assets\styles\normalize.css\normalize.css]
 @ ./~/css-loader?importLoaders=2&sourceMap!./~/autoprefixer-loader?browsers=last 2 version!./~/sass-loader?outputStyle=
expanded&sourceMap=true&sourceMapContents=true!./assets/styles/style.scss 3:10-294
webpack built 0a864dbd15e95aead96c in 1297ms

Can you post your webpack config?

@Exegetech
Copy link

hello, I'm having problem using the css module. Here is my config

// webpack.config.js

const developmentConfig = {
  context: __dirname,

  devtool: 'eval',

  entry: [
    // Hot reload
    'webpack-dev-server/client?http://localhost:8080',
    'webpack/hot/dev-server',

    // App entry
    path.join(__dirname, 'client/index.js')
  ],

  module: {
    loaders: [{
      test: /\.js$/,
      exclude: /node_modules/,
      loader: 'babel'
    }, {
      test: /\.css$/,
      loader: 'style-loader!css-loader!postcss-loader'
    }]
  },

  postcss: function() {
    return [rucksack, lost, autoprefixer, scss];
  },

  output: {
    path: path.join(__dirname, 'client/build'),
    filename: 'bundle.js',
    publicPath: '/build/'
  },

  // Hot module replacement
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    webpackIsomorphicToolsPlugin
  ]
};
// webpack.isomorphic.tools.configuration.js

import WebpackIsomorphicToolsPlugin from 'webpack-isomorphic-tools/plugin'

export default {
  debug: true,
  assets: {
    css: {
      extensions: ['css'],
      parser: WebpackIsomorphicToolsPlugin.css_loader_parser // see Configuration and API sections for more info on this parameter
    },
    images: {
      extensions: ['png', 'jpg', 'gif', 'ico', 'svg'],
      parser: WebpackIsomorphicToolsPlugin.url_loader_parser // see Configuration and API sections for more info on this parameter
    }
  }
}

However, this is the error that I got from console.

[webpack-isomorphic-tools] [debug] entering development mode
[webpack-isomorphic-tools] [debug] registering require() hooks for assets
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.css
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.png
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.jpg
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.gif
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.ico
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.svg
[webpack-isomorphic-tools] [debug] require() called for /Users/christiansakai/Desktop/overreact/common/components/Todo/Filter/Filter.css
[webpack-isomorphic-tools] [debug]  requiring ./common/components/Todo/Filter/Filter.css
module.js:338
    throw err;
    ^

Error: Cannot find module '!!./../../../../node_modules/css-loader/index.js!./../../../../node_modules/postcss-loader/index.js!./Filter.css'
    at Function.Module._resolveFilename (module.js:336:15)
    at Function.Module._load (module.js:286:25)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/Users/christiansakai/Desktop/overreact/common/components/Todo/Filter/Filter.css:4:15)
    at Module._compile (module.js:434:26)
    at Object.Module._extensions.(anonymous function) [as .css] (/Users/christiansakai/Desktop/overreact/node_modules/webpack-isomorphic-tools/babel-transpiled-modules/tools/node-hook.js:100:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/Users/christiansakai/Desktop/overreact/common/components/Todo/Filter/Filter.js:23:3)

@catamphetamine
Copy link
Owner

@christiansakai Yes, this is the same bug.
Post here your css file, your webpack-stats.debug.json gist and your webpack-assets.json

@catamphetamine
Copy link
Owner

I've just released v 2.1.0
Give it a try and post back here your results
npm install webpack-isomorphic-tools@latest --save

@solcik
Copy link
Author

solcik commented Nov 1, 2015

Hello,

it is going ok now, but with bloated output during development and webpack-stats.debug.json always generated (dev, production) even with commented debug option in isomorphicToolsConfig.

  // debug: true,

Output

development mode
https://gist.github.com/solcik/c45f254213fd1788b941
production mode
https://gist.github.com/solcik/b7d6999564e2f75c0046

@catamphetamine
Copy link
Owner

Yes, webpack stats are now always generated because they're always needed.
I could have a look at the bloated output if you posted it here

@korczis
Copy link

korczis commented Nov 1, 2015

@halt-hammerzeit I am using this with https://github.com/erikras/react-redux-universal-hot-example and I am still getting error even with latest 2.1.0

For me it seems it is somehow related to this issue, am I right?

https://gist.github.com/korczis/bae1cee59a7e6e84414a

screenshot

@catamphetamine
Copy link
Owner

@korczis yes, that's probably because my PR hasn't yet been merged into the master branch.
with v2, the webpack-isomorphic-tools.js file needs to be updated.
See the PR for details
https://github.com/erikras/react-redux-universal-hot-example/pull/463/files

@korczis
Copy link

korczis commented Nov 1, 2015

@halt-hammerzeit Oh, I see, thank you for clarification.

@solcik
Copy link
Author

solcik commented Nov 1, 2015

It was in my comment...

development mode
https://gist.github.com/solcik/c45f254213fd1788b941

@catamphetamine
Copy link
Owner

@solcik oh, I get it now: my debugging console output made it's way to a release.
Try a new release
npm install webpack-isomorphic-tools@latest --save

@solcik
Copy link
Author

solcik commented Nov 1, 2015

└── webpack-isomorphic-tools@2.1.1

C:\Users\david\www\_github\babel-react-redux-universal [master +0 ~1 -0]> gulp
[18:30:37] Requiring external module babel-core/register
[18:30:38] Using gulpfile ~\www\_github\babel-react-redux-universal\gulpfile.babel.js
[18:30:39] Starting 'env'...
[18:30:39] Finished 'env' after 52 μs
[18:30:39] Starting 'server'...
[18:30:39] Starting 'webpack-server'...
[bg] Starting node ./bin/webpackDevServer.js
[18:30:39] Finished 'webpack-server' after 74 ms
[18:30:39] Starting 'server-nodemon'...
[18:30:39] Finished 'server-nodemon' after 1.05 ms
[18:30:39] Finished 'server' after 82 ms
[18:30:39] Starting 'default'...
[18:30:39] Finished 'default' after 3.61 μs
[require-hook] [warning] -------------------------------------------------------------
[require-hook] [warning] Overriding require() hook for file extension .svg
[require-hook] [warning] -------------------------------------------------------------
==> Webpack development server listening at http://localhost:8082
C:\Users\david\www\_github\babel-react-redux-universal\node_modules\webpack-isomorphic-tools\babel-transpiled-modules\index.js:376
                        source = 'module.exports = ' + _toolsSerializeJavascript2['default'](result);
                                                                                             ^

ReferenceError: result is not defined
    at webpack_isomorphic_tools.postprocess (C:\Users\david\www\_github\babel-react-redux-universal\node_modules\webpack-isomorphic-tools\babel-transpiled-modules\index.js:376:73)
    at webpack_isomorphic_tools.require (C:\Users\david\www\_github\babel-react-redux-universal\node_modules\webpack-isomorphic-tools\babel-transpiled-modules\index.js:355:15)
    at C:\Users\david\www\_github\babel-react-redux-universal\node_modules\webpack-isomorphic-tools\babel-transpiled-modules\index.js:297:18
    at Object._module3.default._extensions.(anonymous function) [as .scss] (C:\Users\david\www\_github\babel-react-redux-universal\node_modules\webpack-isomorphic-tools\babel-transpiled-modules\tools\require hacker.js:206:17)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (C:/Users/david/www/_github/babel-react-redux-universal/src/common/pages/App/App.react.js:3:38)
    at Module._compile (module.js:425:26)
 Hash: 789361d85c7f57858d3a
Version: webpack 1.12.2
Time: 4895ms
                      Asset     Size  Chunks             Chunk Names
app-789361d85c7f57858d3a.js  8.49 MB       0  [emitted]  app
######################## PATCHED ########################
######################## PATCHED ########################
webpack built 789361d85c7f57858d3a in 4895ms
[require-hook] [warning] -------------------------------------------------------------
[require-hook] [warning] Overriding require() hook for file extension .svg
[require-hook] [warning] -------------------------------------------------------------
==> Api is available at /api/v1
==> Frontend is available at /
==> Open http://localhost:8081 in a browser to view the app.

@catamphetamine
Copy link
Owner

@solcik oh, one more bug
npm install webpack-isomorphic-tools@latest --save

@solcik
Copy link
Author

solcik commented Nov 1, 2015

Ok now.

Thanks for the effort and quick response!

@solcik solcik closed this as completed Nov 1, 2015
@solcik
Copy link
Author

solcik commented Nov 2, 2015

Hello again.)

I played a little bit and here is result:


I prepared my repo on github, created pullrequest, travis is enabled and each pullrequest is deploying new application on heroku, so in pull request you can see something like
solcik deployed to js-universal-pr-6 37 minutes ago
"deployed" is a link to the heroku application.

There is configuration, output from my terminal after running locally (you can look on Travis too) and changed files ofcourse in each pull request.

In the end of terminal output I logged returned value from the import of ./assets/index.scss

There are different variants of setup:

  • css-loader modules enabled/disabled
  • WebpackIsomorphicToolsPlugin.css_loader_parser / WebpackIsomorphicToolsPlugin.css_modules_loader_parser
  • local files only / local files only & files from node_modules

Import of this file is from package https://github.com/basscss/base-reset.
It is located in ./node_modules/basscss-base-reset/index.css as it should be, so I do not have idea (did not investigate internals of your plugin), why it can not find it in "normal" way.

@import 'basscss-base-reset/index.css';

https://github.com/solcik/js-universal/pull/6
https://github.com/solcik/js-universal/pull/7
https://github.com/solcik/js-universal/pull/8
https://github.com/solcik/js-universal/pull/9
https://github.com/solcik/js-universal/pull/10
https://github.com/solcik/js-universal/pull/11

@solcik solcik reopened this Nov 2, 2015
@catamphetamine
Copy link
Owner

Oh, I see, a lot of testing you made.

Ok, so

@solcik
Copy link
Author

solcik commented Nov 2, 2015

I will investigate these a little bit deeper.
https://github.com/solcik/js-universal/pull/9
https://github.com/solcik/js-universal/pull/11


https://github.com/solcik/js-universal/pull/8
This one is ok from my point of view, because css-loader modules option only enable local scope by default, but you can use css-loader with modules off and then default is global, but you can use :local selector to "use css-modules"

You can see this behaviour in https://github.com/solcik/js-universal/pull/10


So I think there should be only one parser from your library - this one WebpackIsomorphicToolsPlugin.css_modules_loader_parser

In that case https://github.com/solcik/js-universal/pull/10 and https://github.com/solcik/js-universal/pull/11 will no longer be an issue, and there is only https://github.com/solcik/js-universal/pull/9 to fix.. (I will investigate little more)

Do you agree?

@catamphetamine
Copy link
Owner

This one is ok from my point of view, because css-loader modules option only enable local scope by default, but you can use css-loader with modules off and then default is global, but you can use :local selector to "use css-modules"

oh, i see.

As for the two errors you mentioned in the previous post: they are the same and they are a Webpack error, which is not related to webpack-isomorphic-tools.
Webpack tries to find ./basscss-base-reset/index.css file on disk and because there is no such file it can't find it and throws the error.

@Exegetech
Copy link

try the @latest and here is the result

[webpack-isomorphic-tools] [debug] instantiated webpack-isomorphic-tools with options {
  "debug": true,
  "assets": {
    "css": {
      "extensions": [
        "css"
      ]
    },
    "images": {
      "extensions": [
        "png",
        "jpg",
        "gif",
        "ico",
        "svg"
      ]
    }
  },
  "webpack_assets_file_path": "webpack-assets.json"
}
[webpack-isomorphic-tools] [debug] entering development mode
[webpack-isomorphic-tools] [debug] registering require() hooks for assets
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.css
[require-hook] [debug] Hooking into *.css files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.png
[require-hook] [debug] Hooking into *.png files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.jpg
[require-hook] [debug] Hooking into *.jpg files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.gif
[require-hook] [debug] Hooking into *.gif files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.ico
[require-hook] [debug] Hooking into *.ico files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.svg
[require-hook] [debug] Hooking into *.svg files loading
[require-hook] [debug] Hooking into *.webpack-module files loading
[require-hook] [debug] Loading source code for /Users/christiansakai/Desktop/overreact/common/components/Todo/Filter/Filter.css
[webpack-isomorphic-tools] [debug] require() called for /Users/christiansakai/Desktop/overreact/common/components/Todo/Filter/Filter.css
[webpack-isomorphic-tools] [debug]  requiring ./common/components/Todo/Filter/Filter.css
/Users/christiansakai/Desktop/overreact/node_modules/core-js/modules/es6.symbol.js:127
  return _stringify.apply($JSON, args);
                    ^

RangeError: Maximum call stack size exceeded
    at Object.stringify (native)
    at Object.stringify (/Users/christiansakai/Desktop/overreact/node_modules/core-js/modules/es6.symbol.js:127:21)
    at Module._findPath (module.js:134:23)
    at Function.Require_hacker._module3.default._findPath (/Users/christiansakai/Desktop/overreact/node_modules/webpack-isomorphic-tools/babel-transpiled-modules/tools/require hacker.js:64:37)
    at Function.Module._resolveFilename (module.js:334:25)
    at Function.Module._load (module.js:286:25)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at /Users/christiansakai/Desktop/overreact/node_modules/webpack-isomorphic-tools/babel-transpiled-modules/index.js:239:24
    at Object.resolve (/Users/christiansakai/Desktop/overreact/node_modules/webpack-isomorphic-tools/babel-transpiled-modules/tools/require hacker.js:128:18)
    at Function.Require_hacker._module3.default._findPath (/Users/christiansakai/Desktop/overreact/node_modules/webpack-isomorphic-tools/babel-transpiled-modules/tools/require hacker.js:83:29)
    at Function.Module._resolveFilename (module.js:334:25)
    at Function.Module._load (module.js:286:25)

@catamphetamine
Copy link
Owner

@christiansakai ok, so it tries to evaluate ./common/components/Todo/Filter/Filter.css from webpack-assets.json.
Post here your webpack-assets.json

@Exegetech
Copy link

@halt-hammerzeit
thanks for the quick response!

here is my webpack-assets.json

{
  "javascript": {
    "main": "/build/bundle.js"
  },
  "styles": {},
  "assets": {
    "./common/components/Todo/Filter/Filter.css": "var __webpack_public_path__ = \"/build/\"; // style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../../../../node_modules/css-loader/index.js!./../../../../node_modules/postcss-loader/index.js!./Filter.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!./../../../../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!./../../../../node_modules/css-loader/index.js!./../../../../node_modules/postcss-loader/index.js!./Filter.css\", function() {\n\t\t\tvar newContent = require(\"!!./../../../../node_modules/css-loader/index.js!./../../../../node_modules/postcss-loader/index.js!./Filter.css\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}",
    "./~/css-loader!./~/postcss-loader!./common/components/Todo/Filter/Filter.css": "var __webpack_public_path__ = \"/build/\"; exports = module.exports = require(\"./../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".filter {\\n  width: 600px;\\n  margin: 20px auto;\\n  display: block;\\n\\n}\\n\", \"\"]);\n\n// exports\n",
    "./common/components/Todo/Items/AddItem/AddItem.css": "var __webpack_public_path__ = \"/build/\"; // style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../../../../../node_modules/css-loader/index.js!./../../../../../node_modules/postcss-loader/index.js!./AddItem.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!./../../../../../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!./../../../../../node_modules/css-loader/index.js!./../../../../../node_modules/postcss-loader/index.js!./AddItem.css\", function() {\n\t\t\tvar newContent = require(\"!!./../../../../../node_modules/css-loader/index.js!./../../../../../node_modules/postcss-loader/index.js!./AddItem.css\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}",
    "./~/css-loader!./~/postcss-loader!./common/components/Todo/Items/AddItem/AddItem.css": "var __webpack_public_path__ = \"/build/\"; exports = module.exports = require(\"./../../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".input {\\n  width: 50%;\\n  margin-right: 2.5%;\\n}\\n\\n.button {\\n  width: 44.5%;\\n  border-radius: 5px;\\n\\n}\\n\\n.add-item {\\n  display: none;\\n}\\n\", \"\"]);\n\n// exports\n",
    "./common/components/Todo/Items/ItemsList/ItemsList.css": "var __webpack_public_path__ = \"/build/\"; // style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../../../../../node_modules/css-loader/index.js!./../../../../../node_modules/postcss-loader/index.js!./ItemsList.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!./../../../../../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!./../../../../../node_modules/css-loader/index.js!./../../../../../node_modules/postcss-loader/index.js!./ItemsList.css\", function() {\n\t\t\tvar newContent = require(\"!!./../../../../../node_modules/css-loader/index.js!./../../../../../node_modules/postcss-loader/index.js!./ItemsList.css\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}",
    "./~/css-loader!./~/postcss-loader!./common/components/Todo/Items/ItemsList/ItemsList.css": "var __webpack_public_path__ = \"/build/\"; exports = module.exports = require(\"./../../../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".item-list {\\n  margin: 0;\\n  padding: 0;\\n}\\n\\n.item:after {\\n  content: '';\\n  display: table;\\n  clear: both;\\n}\\n\\n.item {\\n  list-style-type: none;\\n  padding: 10px;\\n}\\n\\n.item .text {\\n  display: block;\\n  float: left;\\n  margin-top: 10px;\\n  margin-left: 37px;\\n  font-weight: 400;\\n  color: rgba(0,0,0,0.8);\\n}\\n\\n.item .checkbox {\\n  display: block;\\n  float: left;\\n  width: auto;\\n  height: 100%;\\n  height: 40px;\\n}\\n\\n.item .button {\\n  display: block;\\n  width: 30px;\\n  height: 30px;\\n  float: right;\\n  background: none;\\n  border: 1px solid rgba(0,0,0,0.5);\\n  border-radius: 50%;\\n}\\n\\n.item .button:focus {\\n  outline: none;\\n}\\n\", \"\"]);\n\n// exports\n",
    "./common/components/Todo/Todo.css": "var __webpack_public_path__ = \"/build/\"; // style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/postcss-loader/index.js!./Todo.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!./../../../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/postcss-loader/index.js!./Todo.css\", function() {\n\t\t\tvar newContent = require(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/postcss-loader/index.js!./Todo.css\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}",
    "./~/css-loader!./~/postcss-loader!./common/components/Todo/Todo.css": "var __webpack_public_path__ = \"/build/\"; exports = module.exports = require(\"./../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".wrapper {\\n  width: 100%;\\n  height: 100%;\\n  background: #F5F5F5;\\n}\\n\\n.wrapper h1 {\\n  margin-top: 0;\\n  padding-top: 20px;\\n  text-align: center;\\n}\\n\\n.todo-list {\\n  width: 600px;\\n  margin: 0px auto;\\n  background: white;\\n  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2), 0 25px 50px 0 rgba(0, 0, 0, 0.1);\\n  position: relative;\\n}\\n\\n.todo-list input {\\n  width: 100%;\\n  box-shadow: inset 0 -2px 1px rgba(0,0,0,0.03);\\n  background: rgba(0, 0, 0, 0.003);\\n  padding: 16px 16px 16px 60px;\\n  border: none;\\n}\\n\\n.todo-list input:focus {\\n  outline: none;\\n}\\n\", \"\"]);\n\n// exports\n",
    "./client/assets/css/grid.css": "var __webpack_public_path__ = \"/build/\"; // style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/postcss-loader/index.js!./grid.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!./../../../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/postcss-loader/index.js!./grid.css\", function() {\n\t\t\tvar newContent = require(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/postcss-loader/index.js!./grid.css\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}",
    "./~/css-loader!./~/postcss-loader!./client/assets/css/grid.css": "var __webpack_public_path__ = \"/build/\"; exports = module.exports = require(\"./../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".container {\\n  *zoom: 1;\\n  max-width: 980px;\\n  margin-left: auto;\\n  margin-right: auto;\\n}\\n\\n.container:before {\\n  content: '';\\n  display: table;\\n}\\n\\n.container:after {\\n  content: '';\\n  display: table;\\n  clear: both;\\n}\\n\\n.row {\\n  *zoom: 1;\\n}\\n\\n.row:before {\\n  content: '';\\n  display: table;\\n}\\n\\n.row:after {\\n  content: '';\\n  display: table;\\n  clear: both;\\n}\\n\\n.column {\\n  width: calc(99.99% * 1/3 - (30px - 30px * 1/3));\\n  margin-left: calc(99.99% * (-1/3 * -1) - (30px - 30px * (-1/3 * -1)) + 30px) !important;\\n}\\n\\n.column:nth-child(n) {\\n  float: left;\\n  margin-right: 30px;\\n  clear: none;\\n}\\n\\n.column:last-child {\\n  margin-right: 0;\\n}\\n\\n.column:nth-child(3n) {\\n  margin-right: 0;\\n}\\n\\n.column:nth-child(3n + 1) {\\n  clear: left;\\n}\\n\\n\", \"\"]);\n\n// exports\n",
    "./client/assets/css/style.css": "var __webpack_public_path__ = \"/build/\"; // style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/postcss-loader/index.js!./style.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!./../../../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/postcss-loader/index.js!./style.css\", function() {\n\t\t\tvar newContent = require(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/postcss-loader/index.js!./style.css\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}",
    "./~/css-loader!./~/postcss-loader!./client/assets/css/style.css": "var __webpack_public_path__ = \"/build/\"; exports = module.exports = require(\"./../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"/*! normalize.css v2.1.3 | MIT License | git.io/normalize */\\n/* ==========================================================================\\n   HTML5 display definitions\\n   ========================================================================== */\\n/**\\n * Correct `block` display not defined in IE 8/9.\\n */\\narticle, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary {\\n    display: block\\n}\\n/**\\n * Correct `inline-block` display not defined in IE 8/9.\\n */\\naudio, canvas, video {\\n    display: inline-block\\n}\\n/**\\n * Prevent modern browsers from displaying `audio` without controls.\\n * Remove excess height in iOS 5 devices.\\n */\\naudio:not([controls]) {\\n    display: none;\\n    height: 0\\n}\\n/**\\n * Address `[hidden]` styling not present in IE 8/9.\\n * Hide the `template` element in IE, Safari, and Firefox < 22.\\n */\\n[hidden], template {\\n    display: none\\n}\\n/* ==========================================================================\\n   Base\\n   ========================================================================== */\\n/**\\n * 1. Set default font family to sans-serif.\\n * 2. Prevent iOS text size adjust after orientation change, without disabling\\n *    user zoom.\\n */\\nhtml {\\n    font-family: sans-serif;\\n    /* 1 */\\n    -ms-text-size-adjust: 100%;\\n    /* 2 */\\n    -webkit-text-size-adjust: 100%\\n    /* 2 */\\n}\\n/**\\n * Remove default margin.\\n */\\nbody {\\n    margin: 0\\n}\\n/* ==========================================================================\\n   Links\\n   ========================================================================== */\\n/**\\n * Remove the gray background color from active links in IE 10.\\n */\\na {\\n    background: transparent\\n}\\n/**\\n * Address `outline` inconsistency between Chrome and other browsers.\\n */\\na:focus {\\n    outline: thin dotted\\n}\\n/**\\n * Improve readability when focused and also mouse hovered in all browsers.\\n */\\na:active, a:hover {\\n    outline: 0\\n}\\n/* ==========================================================================\\n   Typography\\n   ========================================================================== */\\n/**\\n * Address variable `h1` font-size and margin within `section` and `article`\\n * contexts in Firefox 4+, Safari 5, and Chrome.\\n */\\nh1 {\\n    font-size: 2em;\\n    margin: 0.67em 0\\n}\\n/**\\n * Address styling not present in IE 8/9, Safari 5, and Chrome.\\n */\\nabbr[title] {\\n    border-bottom: 1px dotted\\n}\\n/**\\n * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.\\n */\\nb, strong {\\n    font-weight: bold\\n}\\n/**\\n * Address styling not present in Safari 5 and Chrome.\\n */\\ndfn {\\n    font-style: italic\\n}\\n/**\\n * Address differences between Firefox and other browsers.\\n */\\nhr {\\n    -moz-box-sizing: content-box;\\n    box-sizing: content-box;\\n    height: 0\\n}\\n/**\\n * Address styling not present in IE 8/9.\\n */\\nmark {\\n    background: #ff0;\\n    color: #000\\n}\\n/**\\n * Correct font family set oddly in Safari 5 and Chrome.\\n */\\ncode, kbd, pre, samp {\\n    font-family: monospace, serif;\\n    font-size: 1em\\n}\\n/**\\n * Improve readability of pre-formatted text in all browsers.\\n */\\npre {\\n    white-space: pre-wrap\\n}\\n/**\\n * Set consistent quote types.\\n */\\nq {\\n    quotes: \\\"\\\\201C\\\" \\\"\\\\201D\\\" \\\"\\\\2018\\\" \\\"\\\\2019\\\"\\n}\\n/**\\n * Address inconsistent and variable font size in all browsers.\\n */\\nsmall {\\n    font-size: 80%\\n}\\n/**\\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\\n */\\nsub, sup {\\n    font-size: 75%;\\n    line-height: 0;\\n    position: relative;\\n    vertical-align: baseline\\n}\\nsup {\\n    top: -0.5em\\n}\\nsub {\\n    bottom: -0.25em\\n}\\n/* ==========================================================================\\n   Embedded content\\n   ========================================================================== */\\n/**\\n * Remove border when inside `a` element in IE 8/9.\\n */\\nimg {\\n    border: 0\\n}\\n/**\\n * Correct overflow displayed oddly in IE 9.\\n */\\nsvg:not(:root) {\\n    overflow: hidden\\n}\\n/* ==========================================================================\\n   Figures\\n   ========================================================================== */\\n/**\\n * Address margin not present in IE 8/9 and Safari 5.\\n */\\nfigure {\\n    margin: 0\\n}\\n/* ==========================================================================\\n   Forms\\n   ========================================================================== */\\n/**\\n * Define consistent border, margin, and padding.\\n */\\nfieldset {\\n    border: 1px solid #c0c0c0;\\n    margin: 0 2px;\\n    padding: 0.35em 0.625em 0.75em\\n}\\n/**\\n * 1. Correct `color` not being inherited in IE 8/9.\\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\\n */\\nlegend {\\n    border: 0;\\n    /* 1 */\\n    padding: 0\\n    /* 2 */\\n}\\n/**\\n * 1. Correct font family not being inherited in all browsers.\\n * 2. Correct font size not being inherited in all browsers.\\n * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.\\n */\\nbutton, input, select, textarea {\\n    font-family: inherit;\\n    /* 1 */\\n    font-size: 100%;\\n    /* 2 */\\n    margin: 0\\n    /* 3 */\\n}\\n/**\\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\\n * the UA stylesheet.\\n */\\nbutton, input {\\n    line-height: normal\\n}\\n/**\\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\\n * All other form control elements do not inherit `text-transform` values.\\n * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.\\n * Correct `select` style inheritance in Firefox 4+ and Opera.\\n */\\nbutton, select {\\n    text-transform: none\\n}\\n/**\\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\\n *    and `video` controls.\\n * 2. Correct inability to style clickable `input` types in iOS.\\n * 3. Improve usability and consistency of cursor style between image-type\\n *    `input` and others.\\n */\\nbutton, html input[type=\\\"button\\\"], input[type=\\\"reset\\\"], input[type=\\\"submit\\\"] {\\n    -webkit-appearance: button;\\n    /* 2 */\\n    cursor: pointer\\n    /* 3 */\\n}\\n/**\\n * Re-set default cursor for disabled elements.\\n */\\nbutton[disabled], html input[disabled] {\\n    cursor: default\\n}\\n/**\\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\\n * 2. Remove excess padding in IE 8/9/10.\\n */\\ninput[type=\\\"checkbox\\\"], input[type=\\\"radio\\\"] {\\n    box-sizing: border-box;\\n    /* 1 */\\n    padding: 0\\n    /* 2 */\\n}\\n/**\\n * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\\n * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\\n *    (include `-moz` to future-proof).\\n */\\ninput[type=\\\"search\\\"] {\\n    -webkit-appearance: textfield;\\n    /* 1 */\\n    -moz-box-sizing: content-box;\\n    -webkit-box-sizing: content-box;\\n    /* 2 */\\n    box-sizing: content-box\\n}\\n/**\\n * Remove inner padding and search cancel button in Safari 5 and Chrome\\n * on OS X.\\n */\\ninput[type=\\\"search\\\"]::-webkit-search-cancel-button, input[type=\\\"search\\\"]::-webkit-search-decoration {\\n    -webkit-appearance: none\\n}\\n/**\\n * Remove inner padding and border in Firefox 4+.\\n */\\nbutton::-moz-focus-inner, input::-moz-focus-inner {\\n    border: 0;\\n    padding: 0\\n}\\n/**\\n * 1. Remove default vertical scrollbar in IE 8/9.\\n * 2. Improve readability and alignment in all browsers.\\n */\\ntextarea {\\n    overflow: auto;\\n    /* 1 */\\n    vertical-align: top\\n    /* 2 */\\n}\\n/* ==========================================================================\\n   Tables\\n   ========================================================================== */\\n/**\\n * Remove most spacing between table cells.\\n */\\ntable {\\n    border-collapse: collapse;\\n    border-spacing: 0\\n}\\n\", \"\"]);\n\n// exports\n"
  }
}

@Exegetech
Copy link

I deleted the webpack-assets.json and here is the log error

[require-hook] [debug] Loading source code for /Users/christiansakai/Desktop/overreact/common/components/Todo/Filter/Filter.css
[webpack-isomorphic-tools] [debug] require() called for /Users/christiansakai/Desktop/overreact/common/components/Todo/Filter/Filter.css
[webpack-isomorphic-tools] [debug]  requiring ./common/components/Todo/Filter/Filter.css
[require-hook] [debug] Loading source code for !!./../../../../node_modules/css-loader/index.js!./../../../../node_modules/postcss-loader/index.js!./Filter.css.webpack-module
[require-hook] [debug] Loading source code for ./../../../../node_modules/css-loader/lib/css-base.js.webpack-module
[require-hook] [debug] Loading source code for !./../../../../node_modules/style-loader/addStyles.js.webpack-module
!./../../../../node_modules/style-loader/addStyles.js.webpack-module:14
                return /msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase());
                                           ^

ReferenceError: window is not defined
    at !./../../../../node_modules/style-loader/addStyles.js.webpack-module:14:30
    at !./../../../../node_modules/style-loader/addStyles.js.webpack-module:9:47
    at module.exports (!./../../../../node_modules/style-loader/addStyles.js.webpack-module:30:68)

@catamphetamine
Copy link
Owner

@christiansakai Well, it clearly states in the modules source that style-loader: Adds some css to the DOM by adding a <style> tag.
Which means that you're parsing it wrong: you need another module (not style-loader one, but css-loader one).
Change your filter and path functions.

@catamphetamine
Copy link
Owner

webpack-assets.json need not be deleted, this file is needed for operation

@Exegetech
Copy link

@halt-hammerzeit

which filter and path functions do you mean?

this is what I have in my webpack config


const developmentConfig = {
  context: __dirname,

  devtool: 'eval',

  entry: [
    // Hot reload
    'webpack-dev-server/client?http://localhost:8080',
    'webpack/hot/dev-server',

    // App entry
    path.join(__dirname, 'client/index.js')
  ],

  module: {
    loaders: [{
      test: /\.js$/,
      exclude: /node_modules/,
      loader: 'babel'
    }, {
      test: /\.css$/,
      loader: 'style-loader!css-loader!postcss-loader'
    }]
  },

  postcss: function() {
    return [rucksack, lost, autoprefixer, scss];
  },

  output: {
    path: path.join(__dirname, 'client/build'),
    filename: 'bundle.js',
    publicPath: '/build/'
  },

  // Hot module replacement
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    webpackIsomorphicToolsPlugin
  ]
};

and webpack-isomorphic-tools-config

import WebpackIsomorphicToolsPlugin from 'webpack-isomorphic-tools/plugin'

export default {
  debug: true,
  assets: {
    css: {
      extensions: ['css'],
      parser: WebpackIsomorphicToolsPlugin.css_loader_parser // see Configuration and API sections for more info on this parameter
    },
    images: {
      extensions: ['png', 'jpg', 'gif', 'ico', 'svg'],
      parser: WebpackIsomorphicToolsPlugin.url_loader_parser // see Configuration and API sections for more info on this parameter
    }
  }
}

@catamphetamine
Copy link
Owner

@christiansakai
You can try this:

        styles:
        {
            extension: 'scss',
            filter: webpack_isomorphic_tools_plugin.style_loader_filter,
            path: webpack_isomorphic_tools_plugin.style_loader_path_extractor,
            parser: webpack_isomorphic_tools_plugin.css_loader_parser
        }

or this (if you are using css modules feature):

        styles:
        {
            extension: 'scss',
            filter: webpack_isomorphic_tools_plugin.style_loader_filter,
            path: webpack_isomorphic_tools_plugin.style_loader_path_extractor,
            parser: webpack_isomorphic_tools_plugin.css_modules_loader_parser
        }

@Exegetech
Copy link

I did it and still got this error, probably because I want to try using postcss?

import WebpackIsomorphicToolsPlugin from 'webpack-isomorphic-tools/plugin'

export default {
  debug: true,
  styles:
  {
    extension: 'css',
    filter: WebpackIsomorphicToolsPlugin.style_loader_filter,
    path: WebpackIsomorphicToolsPlugin.style_loader_path_extractor,
    parser: WebpackIsomorphicToolsPlugin.css_modules_loader_parser
  },
  assets: {
    //css: {
    //  extensions: ['css'],
    //  parser: WebpackIsomorphicToolsPlugin.css_loader_parser // see Configuration and API sections for more info on this parameter
    //},
    images: {
      extensions: ['png', 'jpg', 'gif', 'ico', 'svg'],
      parser: WebpackIsomorphicToolsPlugin.url_loader_parser // see Configuration and API sections for more info on this parameter
    }
  }
}
equire-hook] [debug] Hooking into *.ico files loading
[webpack-isomorphic-tools] [debug]  registering a require() hook for *.svg
[require-hook] [debug] Hooking into *.svg files loading
[require-hook] [debug] Hooking into *.webpack-module files loading
/Users/christiansakai/Desktop/overreact/node_modules/babel-core/lib/transformation/file/index.js:671
      throw err;
      ^

SyntaxError: /Users/christiansakai/Desktop/overreact/common/components/Todo/Filter/Filter.css: Unexpected token (1:0)
> 1 | .filter {
    | ^
  2 |   width: 600px;
  3 |   margin: 20px auto;
  4 |   display: block;
    at Parser.pp.raise (/Users/christiansakai/Desktop/overreact/node_modules/babylon/lib/parser/location.js:24:13)
    at Parser.pp.unexpected (/Users/christiansakai/Desktop/overreact/node_modules/babylon/lib/parser/util.js:82:8)
    at Parser.pp.parseExprAtom (/Users/christiansakai/Desktop/overreact/node_modules/babylon/lib/parser/expression.js:425:12)
    at Parser.parseExprAtom (/Users/christiansakai/Desktop/overreact/node_modules/babylon/lib/plugins/jsx/index.js:412:22)
    at Parser.pp.parseExprSubscripts (/Users/christiansakai/Desktop/overreact/node_modules/babylon/lib/parser/expression.js:236:19)
    at Parser.pp.parseMaybeUnary (/Users/christiansakai/Desktop/overreact/node_modules/babylon/lib/parser/expression.js:217:19)

@catamphetamine
Copy link
Owner

@christiansakai No. You need to place styles inside assets. And there's no difference how it's called. It can be css. Try again and post back.

@Exegetech
Copy link

@halt-hammerzeit

[require-hook] [debug] Loading source code for /Users/christiansakai/Desktop/overreact/common/components/Todo/Filter/Filter.css
[webpack-isomorphic-tools] [debug] require() called for /Users/christiansakai/Desktop/overreact/common/components/Todo/Filter/Filter.css
[webpack-isomorphic-tools] [debug]  requiring ./common/components/Todo/Filter/Filter.css
[require-hook] [debug] Loading source code for !!./../../../../node_modules/css-loader/index.js!./../../../../node_modules/postcss-loader/index.js!./Filter.css.webpack-module
[require-hook] [debug] Loading source code for ./../../../../node_modules/css-loader/lib/css-base.js.webpack-module
[require-hook] [debug] Loading source code for !./../../../../node_modules/style-loader/addStyles.js.webpack-module
!./../../../../node_modules/style-loader/addStyles.js.webpack-module:14
                return /msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase());
                                           ^

ReferenceError: window is not defined
    at !./../../../../node_modules/style-loader/addStyles.js.webpack-module:14:30
    at !./../../../../node_modules/style-loader/addStyles.js.webpack-module:9:47
    at module.exports (!./../../../../node_modules/style-loader/addStyles.js.webpack-module:30:68)
    at Object.<anonymous> (/Users/christiansakai/Desktop/overreact/common/components/Todo/Filter/Filter.css:7:78)
    at Module._compile (module.js:434:26)
    at Object._module3.default._extensions.(anonymous function) [as .css] (/Users/christiansakai/Desktop/overreact/node_modules/webpack-isomorphic-tools/babel-transpiled-modules/tools/require hacker.js:229:11)
import WebpackIsomorphicToolsPlugin from 'webpack-isomorphic-tools/plugin'

export default {
  debug: true,
  assets: {
    styles:
    {
      extension: 'css',
      filter: WebpackIsomorphicToolsPlugin.style_loader_filter,
      path: WebpackIsomorphicToolsPlugin.style_loader_path_extractor,
      parser: WebpackIsomorphicToolsPlugin.css_modules_loader_parser
    },
    //css: {
    //  extensions: ['css'],
    //  parser: WebpackIsomorphicToolsPlugin.css_loader_parser // see Configuration and API sections for more info on this parameter
    //},
    images: {
      extensions: ['png', 'jpg', 'gif', 'ico', 'svg'],
      parser: WebpackIsomorphicToolsPlugin.url_loader_parser // see Configuration and API sections for more info on this parameter
    }
  }
}

@catamphetamine
Copy link
Owner

@christiansakai Yes, now it works, but of course window doesn't exist on the server. I assume that postcss-loader adds this code and isn't adopted for server usage.

@Exegetech
Copy link

ah I see. okay then. Thanks! I'll report to postcss-loader repo

Thanks for the awesome work @halt-hammerzeit

@catamphetamine
Copy link
Owner

By the way, I've just released 2.2.0 and webpack-stats.json file is again not needed for operation and is again generated only in debug mode.
webpack-assets.json is now prettier, as it used to be.

@solcik
Copy link
Author

solcik commented Nov 2, 2015

So for https://github.com/solcik/js-universal/pull/9

I am terribly sorry, because I did not read README for sass, less loaders, as they clearly states this...
https://github.com/jtangelder/sass-loader#imports
https://github.com/webpack/less-loader#imports

https://github.com/solcik/js-universal/commit/6c59f3d989262b632b64314619812bbd521acb59

I checked back with 2.0.2 of your library and problem was still there even with ~, so your require hack was still needed I suppose?

@solcik solcik closed this as completed Nov 2, 2015
@catamphetamine
Copy link
Owner

@solcik Yeah, I guess.
According to the history
https://github.com/halt-hammerzeit/webpack-isomorphic-tools/blob/master/HISTORY.md
Added support for arbitrary path require()ing (even for the weirdest ones)
This is what was kinda big thing and fixed a lot of "advanced" use cases.

@catamphetamine
Copy link
Owner

FYI
I'm posting this in every issue and PR to notify whoever may be interested:
today I've released an alternative helper library called universal-webpack.
It takes a different approach than webpack-ismorphic-tools and instead of hacking Node.js require() calls it just compiles all code with target: 'node' webpack configuration option.
As a result, all Webpack plugins and features are supported.
If you think you might need that here's an example project:
https://github.com/halt-hammerzeit/webpack-react-redux-isomorphic-render-example

@korczis
Copy link

korczis commented May 21, 2016

@halt-hammerzeit, nice one. Thanks for update/sharing.

On Saturday, 21 May 2016, Nikolay notifications@github.com wrote:

FYI
I'm posting this in every issue and PR to notify whoever may be interested:
today I've released an alternative helper library called universal-webpack
https://github.com/halt-hammerzeit/universal-webpack.
It takes a different approach than webpack-ismorphic-tools and instead of
hacking Node.js require() calls it just compiles all code with target:
'node' webpack configuration option.
As a result, all Webpack plugins and features are supported.
If you think you might need that here's an example project:

https://github.com/halt-hammerzeit/webpack-react-redux-isomorphic-render-example


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
#14 (comment)

This e-mail is intended for the named recipient(s). It may contain privileged and/or confidential information. If you are not one of the intended recipients, please notify the sender immediately and destroy this e-mail and attachment(s): you must not copy, distribute, retain or take any action in reliance upon the email or attachment(s). While all reasonable efforts are made to safeguard inbound and outbound e-mails, Tomas Korcak cannot guarantee that attachments are virus-free or are compatible with your systems, and does not accept liability in respect of viruses or computer problems experienced. Thank you. Your Skills In Reading Have Improved +1 Some days you're the dog; some days you're the hydrant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants