From 26105034da4fcce7ac883c899d781f016559310d Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 8 Nov 2018 00:38:48 +0800 Subject: switch to vuepress --- node_modules/postcss-loader/CHANGELOG.md | 302 +++++ node_modules/postcss-loader/LICENSE | 20 + node_modules/postcss-loader/README.md | 466 +++++++ node_modules/postcss-loader/lib/Error.js | 17 + node_modules/postcss-loader/lib/index.js | 196 +++ node_modules/postcss-loader/lib/options.js | 25 + node_modules/postcss-loader/lib/options.json | 43 + .../node_modules/postcss/CHANGELOG.md | 552 +++++++++ .../node_modules/postcss/CONTRIBUTING.md | 78 ++ .../postcss-loader/node_modules/postcss/LICENSE | 20 + .../node_modules/postcss/README-cn.md | 349 ++++++ .../postcss-loader/node_modules/postcss/README.md | 376 ++++++ .../node_modules/postcss/docs/architecture.md | 156 +++ .../node_modules/postcss/docs/guidelines/plugin.md | 195 +++ .../node_modules/postcss/docs/guidelines/runner.md | 143 +++ .../node_modules/postcss/docs/source-maps.md | 74 ++ .../node_modules/postcss/docs/syntax.md | 231 ++++ .../node_modules/postcss/gulpfile.js | 97 ++ .../node_modules/postcss/lib/at-rule.js | 131 ++ .../node_modules/postcss/lib/comment.js | 61 + .../node_modules/postcss/lib/container.js | 907 ++++++++++++++ .../node_modules/postcss/lib/css-syntax-error.js | 256 ++++ .../node_modules/postcss/lib/declaration.js | 101 ++ .../node_modules/postcss/lib/input.js | 204 +++ .../node_modules/postcss/lib/lazy-result.js | 435 +++++++ .../node_modules/postcss/lib/list.js | 95 ++ .../node_modules/postcss/lib/map-generator.js | 323 +++++ .../node_modules/postcss/lib/node.js | 625 ++++++++++ .../node_modules/postcss/lib/parse.js | 41 + .../node_modules/postcss/lib/parser.js | 552 +++++++++ .../node_modules/postcss/lib/postcss.d.ts | 1301 ++++++++++++++++++++ .../node_modules/postcss/lib/postcss.js | 292 +++++ .../node_modules/postcss/lib/previous-map.js | 170 +++ .../node_modules/postcss/lib/processor.js | 240 ++++ .../node_modules/postcss/lib/result.js | 206 ++++ .../node_modules/postcss/lib/root.js | 129 ++ .../node_modules/postcss/lib/rule.js | 123 ++ .../node_modules/postcss/lib/stringifier.js | 344 ++++++ .../node_modules/postcss/lib/stringify.js | 17 + .../node_modules/postcss/lib/terminal-highlight.js | 83 ++ .../node_modules/postcss/lib/tokenize.js | 306 +++++ .../node_modules/postcss/lib/vendor.js | 52 + .../node_modules/postcss/lib/warn-once.js | 14 + .../node_modules/postcss/lib/warning.js | 122 ++ .../node_modules/postcss/package.json | 25 + node_modules/postcss-loader/package.json | 49 + 46 files changed, 10544 insertions(+) create mode 100644 node_modules/postcss-loader/CHANGELOG.md create mode 100644 node_modules/postcss-loader/LICENSE create mode 100644 node_modules/postcss-loader/README.md create mode 100644 node_modules/postcss-loader/lib/Error.js create mode 100644 node_modules/postcss-loader/lib/index.js create mode 100644 node_modules/postcss-loader/lib/options.js create mode 100644 node_modules/postcss-loader/lib/options.json create mode 100644 node_modules/postcss-loader/node_modules/postcss/CHANGELOG.md create mode 100644 node_modules/postcss-loader/node_modules/postcss/CONTRIBUTING.md create mode 100644 node_modules/postcss-loader/node_modules/postcss/LICENSE create mode 100644 node_modules/postcss-loader/node_modules/postcss/README-cn.md create mode 100644 node_modules/postcss-loader/node_modules/postcss/README.md create mode 100644 node_modules/postcss-loader/node_modules/postcss/docs/architecture.md create mode 100644 node_modules/postcss-loader/node_modules/postcss/docs/guidelines/plugin.md create mode 100644 node_modules/postcss-loader/node_modules/postcss/docs/guidelines/runner.md create mode 100644 node_modules/postcss-loader/node_modules/postcss/docs/source-maps.md create mode 100644 node_modules/postcss-loader/node_modules/postcss/docs/syntax.md create mode 100644 node_modules/postcss-loader/node_modules/postcss/gulpfile.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/at-rule.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/comment.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/container.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/css-syntax-error.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/declaration.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/input.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/lazy-result.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/list.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/map-generator.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/node.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/parse.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/parser.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/postcss.d.ts create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/postcss.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/previous-map.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/processor.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/result.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/root.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/rule.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/stringifier.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/stringify.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/terminal-highlight.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/tokenize.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/vendor.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/warn-once.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/lib/warning.js create mode 100644 node_modules/postcss-loader/node_modules/postcss/package.json create mode 100644 node_modules/postcss-loader/package.json (limited to 'node_modules/postcss-loader') diff --git a/node_modules/postcss-loader/CHANGELOG.md b/node_modules/postcss-loader/CHANGELOG.md new file mode 100644 index 00000000..326af73a --- /dev/null +++ b/node_modules/postcss-loader/CHANGELOG.md @@ -0,0 +1,302 @@ +# Change Log + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + + +## [2.1.6](https://github.com/postcss/postcss-loader/compare/v2.1.5...v2.1.6) (2018-07-10) + + +### Bug Fixes + +* **package:** config memory leak, updates `postcss-load-config` v1.2.0...2.0.0 (`dependencies`) ([0547b12](https://github.com/postcss/postcss-loader/commit/0547b12)) + + + + +## [2.1.5](https://github.com/postcss/postcss-loader/compare/v2.1.4...v2.1.5) (2018-05-04) + + +### Bug Fixes + +* **index:** remove `sourceMap` warning ([#361](https://github.com/postcss/postcss-loader/issues/361)) ([4416791](https://github.com/postcss/postcss-loader/commit/4416791)) + + + + +## [2.1.4](https://github.com/postcss/postcss-loader/compare/v2.1.3...v2.1.4) (2018-04-16) + + +### Bug Fixes + +* restore loader object in postcss config context ([#355](https://github.com/postcss/postcss-loader/issues/355)) ([2ff1735](https://github.com/postcss/postcss-loader/commit/2ff1735)) + + + + +## [2.1.3](https://github.com/postcss/postcss-loader/compare/v2.1.2...v2.1.3) (2018-03-20) + + +### Bug Fixes + +* **options:** revert additionalProperties changes to keep SemVer ([bd7fc38](https://github.com/postcss/postcss-loader/commit/bd7fc38)) + + + + +## [2.1.2](https://github.com/postcss/postcss-loader/compare/v2.1.1...v2.1.2) (2018-03-17) + + +### Bug Fixes + +* **options:** disallow additional properties and add `ident` to validation ([#346](https://github.com/postcss/postcss-loader/issues/346)) ([82ef553](https://github.com/postcss/postcss-loader/commit/82ef553)) + + + + +## [2.1.1](https://github.com/postcss/postcss-loader/compare/v2.1.0...v2.1.1) (2018-02-26) + + +### Bug Fixes + +* **index:** don't set `to` value (`options`) ([#339](https://github.com/postcss/postcss-loader/issues/339)) ([cdbb8b6](https://github.com/postcss/postcss-loader/commit/cdbb8b6)) + + + + +# [2.1.0](https://github.com/postcss/postcss-loader/compare/v2.0.10...v2.1.0) (2018-02-02) + + +### Bug Fixes + +* **index:** continue watching after dependency `{Error}` ([#332](https://github.com/postcss/postcss-loader/issues/332)) ([a8921cc](https://github.com/postcss/postcss-loader/commit/a8921cc)) + + +### Features + +* **index:** pass AST (`result.root`) && Messages (`result.messages`) as metadata to other loaders ([#322](https://github.com/postcss/postcss-loader/issues/322)) ([56232e7](https://github.com/postcss/postcss-loader/commit/56232e7)) + + + + +## [2.0.10](https://github.com/postcss/postcss-loader/compare/v2.0.9...v2.0.10) (2018-01-03) + + +### Bug Fixes + +* **index:** copy loader `options` before modifying ([#326](https://github.com/postcss/postcss-loader/issues/326)) ([61ff03c](https://github.com/postcss/postcss-loader/commit/61ff03c)) + + + + +## [2.0.9](https://github.com/postcss/postcss-loader/compare/v2.0.8...v2.0.9) (2017-11-24) + + +### Bug Fixes + +* **index:** filter `ident` (`options.ident`) ([#315](https://github.com/postcss/postcss-loader/issues/315)) ([3e1c7fa](https://github.com/postcss/postcss-loader/commit/3e1c7fa)) + + + + +## [2.0.8](https://github.com/postcss/postcss-loader/compare/v2.0.6...v2.0.8) (2017-10-14) + + +### Bug Fixes + +* **lib/options:** handle `{Object}` return (`options.plugins`) ([#301](https://github.com/postcss/postcss-loader/issues/301)) ([df010a7](https://github.com/postcss/postcss-loader/commit/df010a7)) +* **schema:** allow to pass an `{Object}` (`options.syntax/options.stringifier`) ([#300](https://github.com/postcss/postcss-loader/issues/300)) ([58e9996](https://github.com/postcss/postcss-loader/commit/58e9996)) + + + + +## [2.0.7](https://github.com/postcss/postcss-loader/compare/v2.0.6...v2.0.7) (2017-10-10) + + +### Bug Fixes + +* sanitizing `from` and `to` options (`postcss.config.js`) ([#260](https://github.com/postcss/postcss-loader/issues/260)) ([753dea7](https://github.com/postcss/postcss-loader/commit/753dea7)) +* **index:** runaway promise ([#269](https://github.com/postcss/postcss-loader/issues/269)) ([8df20ce](https://github.com/postcss/postcss-loader/commit/8df20ce)) + + + + +## [2.0.6](https://github.com/postcss/postcss-loader/compare/v2.0.5...v2.0.6) (2017-06-14) + + +### Bug Fixes + +* allow to pass an `{Object}` (`options.parser`) ([#257](https://github.com/postcss/postcss-loader/issues/257)) ([4974607](https://github.com/postcss/postcss-loader/commit/4974607)) +* misspelling in warnings ([#237](https://github.com/postcss/postcss-loader/issues/237)) ([adcbb2e](https://github.com/postcss/postcss-loader/commit/adcbb2e)) +* **index:** simplify config loading behaviour ([#259](https://github.com/postcss/postcss-loader/issues/259)) ([b313478](https://github.com/postcss/postcss-loader/commit/b313478)) + + + + +## [2.0.5](https://github.com/postcss/postcss-loader/compare/v2.0.4...v2.0.5) (2017-05-10) + + +### Bug Fixes + +* regression with `options.plugins` `{Function}` (`webpack.config.js`) (#229) ([dca52a9](https://github.com/postcss/postcss-loader/commit/dca52a9)) + + + + +## [2.0.4](https://github.com/postcss/postcss-loader/compare/v2.0.3...v2.0.4) (2017-05-10) + + +### Bug Fixes + +* **index:** `postcss.config.js` not resolved correctly (`options.config`) ([faaeee4](https://github.com/postcss/postcss-loader/commit/faaeee4)) +* **index:** update validation schema, better warning message ([4f20c99](https://github.com/postcss/postcss-loader/commit/4f20c99)) + + + + +## [2.0.3](https://github.com/postcss/postcss-loader/compare/v2.0.2...v2.0.3) (2017-05-09) + + +### Bug Fixes + +* **index:** don't fail on 'sourceMap: false' && emit a warning instead, when previous map found (`options.sourceMap`) ([159b66a](https://github.com/postcss/postcss-loader/commit/159b66a)) + + + + +## [2.0.2](https://github.com/postcss/postcss-loader/compare/v2.0.1...v2.0.2) (2017-05-09) + + +### Bug Fixes + +* **index:** 'No PostCSS Config found' (`options.config`) (#215) ([e764761](https://github.com/postcss/postcss-loader/commit/e764761)) + + + + +## [2.0.1](https://github.com/postcss/postcss-loader/compare/v2.0.0...v2.0.1) (2017-05-08) + + +### Bug Fixes + +* **index:** 'Cannot create property `prev` on boolean `false`' (`options.sourceMap`) ([c4f0064](https://github.com/postcss/postcss-loader/commit/c4f0064)) + + + + +# [2.0.0](https://github.com/postcss/postcss-loader/compare/1.2.2...v2.0.0) (2017-05-08) + + +### Features + +* **index:** add ctx, ctx.file, ctx.options ([0dceb2c](https://github.com/postcss/postcss-loader/commit/0dceb2c)) +* **index:** add options validation ([2b76df8](https://github.com/postcss/postcss-loader/commit/2b76df8)) + + + +## 1.3.3 +* Remove `postcss-loader-before-processing` warning (by Michael Ciniawsky). + +## 1.3.2 +* Fix deprecated warning (by Xiaoyu Zhai). + +## 1.3.1 +* Fix conflict with CLI `--config` argument (by EGOIST). + +## 1.3 +* Allow object in syntax options, not only path for require (by Jeff Escalante). + +## 1.2.2 +* Watch `postcss.config.js` for changes (by Michael Ciniawsky). + +## 1.2.1 +* Fix relative `config` parameter resolving (by Simen Bekkhus). + +## 1.2 +* Add `config` parameter (by sainthkh). + +## 1.1.1 +* Fix `this` in options function (by Jeff Escalante). + +## 1.1 +* PostCSS common config could be placed to subdirs. +* Add webpack instance to PostCSS common config context. + +## 1.0 +* Add common PostCSS config support (by Mateusz Derks). +* Add Webpack 2 support with `plugins` query option (by Izaak Schroeder). +* Add `dependency` message support. +* Rewrite docs (by Michael Ciniawsky). + +## 0.13 +* Add `exec` parameter (by Neal Granger). + +## 0.12 +* Add CSS syntax highlight to syntax error code frame. + +## 0.11.1 +* Fix Promise API (by Daniel Haus). + +## 0.11 +* Add `postcss-loader-before-processing` webpack event (by Jan Nicklas). + +## 0.10.1 +* Better syntax error message (by Andrey Popp). + +## 0.10.0 +* Add `sourceMap` parameter to force inline maps (by 雪狼). + +## 0.9.1 +* Fix plugin in simple array config. + +## 0.9 +* Allow to pass syntax, parser or stringifier as function (by Jeff Escalante). + +## 0.8.2 +* Fix source map support (by Andrew Bradley). + +## 0.8.1 +* Fix resource path. + +## 0.8 +* Add postcss-js support (by Simon Degraeve). + +## 0.7 +* Added argument with webpack instance to plugins callback (by Maxime Thirouin). + +## 0.6 +* Use PostCSS 5.0. +* Remove `safe` parameter. Use Safe Parser. +* Add `syntax`, `parser` and `stringifier` parameters. + +## 0.5.1 +* Fix string source map support (by Jan Nicklas). + +## 0.5.0 +* Set plugins by function for hot reload support (by Stefano Brilli). + +## 0.4.4 +* Fix error on empty PostCSS config. + +## 0.4.3 +* Better check for `CssSyntaxError`. + +## 0.4.2 +* Fixed invalid sourcemap exception (by Richard Willis). + +## 0.4.1 +* Use only Promise API to catch PostCSS errors. + +## 0.4 +* Add PostCSS asynchronous API support. +* Fix source map support (by Richard Willis). +* Add warnings API support. +* Better output for CSS syntax errors. + +## 0.3 +* Use PostCSS 4.0. + +## 0.2 +* Use PostCSS 3.0. + +## 0.1 +* Initial release. diff --git a/node_modules/postcss-loader/LICENSE b/node_modules/postcss-loader/LICENSE new file mode 100644 index 00000000..c6bb2fc6 --- /dev/null +++ b/node_modules/postcss-loader/LICENSE @@ -0,0 +1,20 @@ +License (MIT) + +Copyright 2017 Andrey Sitnik + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/postcss-loader/README.md b/node_modules/postcss-loader/README.md new file mode 100644 index 00000000..a3465703 --- /dev/null +++ b/node_modules/postcss-loader/README.md @@ -0,0 +1,466 @@ +[![npm][npm]][npm-url] +[![node][node]][node-url] +[![deps][deps]][deps-url] +[![tests][tests]][tests-url] +[![coverage][cover]][cover-url] +[![chat][chat]][chat-url] + +
+ PostCSS Logo + + + +
+ + Sponsored by Evil Martians + +
+

PostCSS Loader

+

Loader for webpack to process CSS with PostCSS

+
+ +

Install

+ +```bash +npm i -D postcss-loader +``` + +

Usage

+ +### `Configuration` + +**postcss.config.js** +```js +module.exports = { + parser: 'sugarss', + plugins: { + 'postcss-import': {}, + 'postcss-cssnext': {}, + 'cssnano': {} + } +} +``` + +You can read more about common PostCSS Config [here](https://github.com/michael-ciniawsky/postcss-load-config). + +### `Config Cascade` + +You can use different `postcss.config.js` files in different directories. +Config lookup starts from `path.dirname(file)` and walks the file tree upwards until a config file is found. + +``` +|– components +| |– component +| | |– index.js +| | |– index.png +| | |– style.css (1) +| | |– postcss.config.js (1) +| |– component +| | |– index.js +| | |– image.png +| | |– style.css (2) +| +|– postcss.config.js (1 && 2 (recommended)) +|– webpack.config.js +| +|– package.json +``` + +After setting up your `postcss.config.js`, add `postcss-loader` to your `webpack.config.js`. You can use it standalone or in conjunction with `css-loader` (recommended). Use it **after** `css-loader` and `style-loader`, but **before** other preprocessor loaders like e.g `sass|less|stylus-loader`, if you use any. + +**webpack.config.js** +```js +module.exports = { + module: { + rules: [ + { + test: /\.css$/, + use: [ 'style-loader', 'postcss-loader' ] + } + ] + } +} +``` + +> ⚠️ When `postcss-loader` is used standalone (without `css-loader`) don't use `@import` in your CSS, since this can lead to quite bloated bundles + +**webpack.config.js (recommended)** +```js +module.exports = { + module: { + rules: [ + { + test: /\.css$/, + use: [ + 'style-loader', + { loader: 'css-loader', options: { importLoaders: 1 } }, + 'postcss-loader' + ] + } + ] + } +} +``` + +

Options

+ +|Name|Type|Default|Description| +|:--:|:--:|:-----:|:----------| +|[`exec`](#exec)|`{Boolean}`|`undefined`|Enable PostCSS Parser support in `CSS-in-JS`| +|[`parser`](#syntaxes)|`{String\|Object}`|`undefined`|Set PostCSS Parser| +|[`syntax`](#syntaxes)|`{String\|Object}`|`undefined`|Set PostCSS Syntax| +|[`stringifier`](#syntaxes)|`{String\|Object}`|`undefined`|Set PostCSS Stringifier| +|[`config`](#config)|`{Object}`|`undefined`|Set `postcss.config.js` config path && `ctx`| +|[`plugins`](#plugins)|`{Array\|Function}`|`[]`|Set PostCSS Plugins| +|[`sourceMap`](#sourcemap)|`{String\|Boolean}`|`false`|Enable Source Maps| + +### `Exec` + +If you use JS styles without the [`postcss-js`][postcss-js] parser, add the `exec` option. + +```js +{ + test: /\.style.js$/, + use: [ + 'style-loader', + { loader: 'css-loader', options: { importLoaders: 1 } }, + { loader: 'postcss-loader', options: { parser: 'sugarss', exec: true } } + ] +} +``` + +### `Config` + +|Name|Type|Default|Description| +|:--:|:--:|:-----:|:----------| +|[`path`](#path)|`{String}`|`undefined`|PostCSS Config Path| +|[`context`](#context)|`{Object}`|`undefined`|PostCSS Config Context| + +#### `Path` + +You can manually specify the path to search for your config (`postcss.config.js`) with the `config.path` option. This is needed if you store your config in a separate e.g `./config || ./.config` folder. + +> ⚠️ Otherwise it is **unnecessary** to set this option and is **not** recommended + +**webpack.config.js** +```js +{ + loader: 'postcss-loader', + options: { + config: { + path: 'path/to/postcss.config.js' + } + } +} +``` + +#### `Context (ctx)` + +|Name|Type|Default|Description| +|:--:|:--:|:-----:|:----------| +|`env`|`{String}`|`'development'`|`process.env.NODE_ENV`| +|`file`|`{Object}`|`loader.resourcePath`|`extname`, `dirname`, `basename`| +|`options`|`{Object}`|`{}`|Options| + +`postcss-loader` exposes context `ctx` to the config file, making your `postcss.config.js` dynamic, so can use it to do some real magic ✨ + +**postcss.config.js** +```js +module.exports = ({ file, options, env }) => ({ + parser: file.extname === '.sss' ? 'sugarss' : false, + plugins: { + 'postcss-import': { root: file.dirname }, + 'postcss-cssnext': options.cssnext ? options.cssnext : false, + 'autoprefixer': env === 'production' ? options.autoprefixer : false, + 'cssnano': env === 'production' ? options.cssnano : false + } +}) +``` + +**webpack.config.js** +```js +{ + loader: 'postcss-loader', + options: { + config: { + ctx: { + cssnext: {...options}, + cssnano: {...options}, + autoprefixer: {...options} + } + } + } +} +``` + +### `Plugins` + +**webpack.config.js** +```js +{ + loader: 'postcss-loader', + options: { + ident: 'postcss', + plugins: (loader) => [ + require('postcss-import')({ root: loader.resourcePath }), + require('postcss-cssnext')(), + require('autoprefixer')(), + require('cssnano')() + ] + } +} +``` + +> ⚠️ webpack requires an identifier (`ident`) in `options` when `{Function}/require` is used (Complex Options). The `ident` can be freely named as long as it is unique. It's recommended to name it (`ident: 'postcss'`) + +### `Syntaxes` + +|Name|Type|Default|Description| +|:--:|:--:|:-----:|:----------| +|[`parser`](#parser)|`{String\|Function}`|`undefined`|Custom PostCSS Parser| +|[`syntax`](#syntax)|`{String\|Function}`|`undefined`|Custom PostCSS Syntax| +|[`stringifier`](#stringifier)|`{String\|Function}`|`undefined`|Custom PostCSS Stringifier| + +#### `Parser` + +**webpack.config.js** +```js +{ + test: /\.sss$/, + use: [ + ..., + { loader: 'postcss-loader', options: { parser: 'sugarss' } } + ] +} +``` + +#### `Syntax` + +**webpack.config.js** +```js +{ + test: /\.css$/, + use: [ + ..., + { loader: 'postcss-loader', options: { syntax: 'sugarss' } } + ] +} +``` + +#### `Stringifier` + +**webpack.config.js** +```js +{ + test: /\.css$/, + use: [ + ..., + { loader: 'postcss-loader', options: { stringifier: 'midas' } } + ] +} +``` + +### `SourceMap` + +Enables source map support, `postcss-loader` will use the previous source map given by other loaders and update it accordingly, if no previous loader is applied before `postcss-loader`, the loader will generate a source map for you. + +**webpack.config.js** +```js +{ + test: /\.css/, + use: [ + { loader: 'style-loader', options: { sourceMap: true } }, + { loader: 'css-loader', options: { sourceMap: true } }, + { loader: 'postcss-loader', options: { sourceMap: true } }, + { loader: 'sass-loader', options: { sourceMap: true } } + ] +} +``` + +#### `'inline'` + +You can set the `sourceMap: 'inline'` option to inline the source map +within the CSS directly as an annotation comment. + +**webpack.config.js** +```js +{ + loader: 'postcss-loader', + options: { + sourceMap: 'inline' + } +} +``` + +```css +.class { color: red; } + +/*# sourceMappingURL=data:application/json;base64, ... */ +``` + +

Examples

+ +### `Stylelint` + +**webpack.config.js** +```js +{ + test: /\.css$/, + use: [ + 'style-loader', + 'css-loader', + { + loader: 'postcss-loader', + options: { + ident: 'postcss', + plugins: [ + require('postcss-import')(), + require('stylelint')(), + ..., + ] + } + } + ] +} +``` + +### `CSS Modules` + +This loader [cannot be used] with [CSS Modules] out of the box due +to the way `css-loader` processes file imports. To make them work properly, +either add the css-loader’s [`importLoaders`] option. + +**webpack.config.js** +```js +{ + test: /\.css$/, + use: [ + 'style-loader', + { loader: 'css-loader', options: { modules: true, importLoaders: 1 } }, + 'postcss-loader' + ] +} +``` + +or use [postcss-modules] instead of `css-loader`. + +[`importLoaders`]: https://github.com/webpack-contrib/css-loader#importloaders +[cannot be used]: https://github.com/webpack/css-loader/issues/137 +[CSS Modules]: https://github.com/webpack/css-loader#css-modules +[postcss-modules]: https://github.com/outpunk/postcss-modules + +### `CSS-in-JS` + +If you want to process styles written in JavaScript, use the [postcss-js] parser. + +[postcss-js]: https://github.com/postcss/postcss-js + +```js +{ + test: /\.style.js$/, + use: [ + 'style-loader', + { loader: 'css-loader', options: { importLoaders: 2 } }, + { loader: 'postcss-loader', options: { parser: 'postcss-js' } }, + 'babel-loader' + ] +} +``` + +As result you will be able to write styles in the following way + +```js +import colors from './styles/colors' + +export default { + '.menu': { + color: colors.main, + height: 25, + '&_link': { + color: 'white' + } + } +} +``` + +> :warning: If you are using Babel you need to do the following in order for the setup to work + +> 1. Add [babel-plugin-add-module-exports] to your configuration +> 2. You need to have only one **default** export per style module + +[babel-plugin-add-module-exports]: https://github.com/59naga/babel-plugin-add-module-exports + +### [Extract CSS][ExtractPlugin] + +[ExtractPlugin]: https://github.com/webpack-contrib/extract-text-webpack-plugin + +**webpack.config.js** +```js +const ExtractTextPlugin = require('extract-text-webpack-plugin') + +module.exports = { + module: { + rules: [ + { + test: /\.css$/, + use: ExtractTextPlugin.extract({ + fallback: 'style-loader', + use: [ + { loader: 'css-loader', options: { importLoaders: 1 } }, + 'postcss-loader' + ] + }) + } + ] + }, + plugins: [ + new ExtractTextPlugin('[name].css') + ] +} +``` + +

Maintainers

+ + + + + + + + +
+ + +
+ Michael Ciniawsky +
+
+ + +
+ Alexander Krasnoyarov +
+
+ + +[npm]: https://img.shields.io/npm/v/postcss-loader.svg +[npm-url]: https://npmjs.com/package/postcss-loader + +[node]: https://img.shields.io/node/v/postcss-loader.svg +[node-url]: https://nodejs.org + +[deps]: https://david-dm.org/postcss/postcss-loader.svg +[deps-url]: https://david-dm.org/postcss/postcss-loader + +[tests]: http://img.shields.io/travis/postcss/postcss-loader.svg +[tests-url]: https://travis-ci.org/postcss/postcss-loader + +[cover]: https://coveralls.io/repos/github/postcss/postcss-loader/badge.svg +[cover-url]: https://coveralls.io/github/postcss/postcss-loader + +[chat]: https://badges.gitter.im/postcss/postcss.svg +[chat-url]: https://gitter.im/postcss/postcss diff --git a/node_modules/postcss-loader/lib/Error.js b/node_modules/postcss-loader/lib/Error.js new file mode 100644 index 00000000..05ea46ea --- /dev/null +++ b/node_modules/postcss-loader/lib/Error.js @@ -0,0 +1,17 @@ +'use strict' + +class SyntaxError extends Error { + constructor (err) { + super(err) + + this.name = 'Syntax Error' + + this.message = '' + this.message += `${this.name} \n\n(${err.line}:${err.column}) ${err.reason}` + this.message += `\n\n${err.showSourceCode()}\n` + + this.stack = false + } +} + +module.exports = SyntaxError diff --git a/node_modules/postcss-loader/lib/index.js b/node_modules/postcss-loader/lib/index.js new file mode 100644 index 00000000..623ff184 --- /dev/null +++ b/node_modules/postcss-loader/lib/index.js @@ -0,0 +1,196 @@ +'use strict' + +const path = require('path') + +const loaderUtils = require('loader-utils') + +const parseOptions = require('./options') +const validateOptions = require('schema-utils') + +const postcss = require('postcss') +const postcssrc = require('postcss-load-config') + +const SyntaxError = require('./Error') + +/** + * PostCSS Loader + * + * > Loads && processes CSS with [PostCSS](https://github.com/postcss/postcss) + * + * @author Andrey Sitnik (@ai) + * + * @license MIT + * @version 2.0.0 + * + * @requires path + * + * @requires loader-utils + * @requires schema-utils + * + * @requires postcss + * @requires postcss-load-config + * + * @requires Error + * + * @method loader + * + * @param {String} css Source + * @param {Object} map Source Map + * + * @return {cb} cb Result + */ +module.exports = function loader (css, map, meta) { + const options = Object.assign({}, loaderUtils.getOptions(this)) + + validateOptions(require('./options.json'), options, 'PostCSS Loader') + + const cb = this.async() + const file = this.resourcePath + + const sourceMap = options.sourceMap + + Promise.resolve().then(() => { + const length = Object.keys(options) + .filter((option) => { + switch (option) { + // case 'exec': + case 'ident': + case 'config': + case 'sourceMap': + return + default: + return option + } + }) + .length + + if (length) { + return parseOptions.call(this, options) + } + + const rc = { + path: path.dirname(file), + ctx: { + file: { + extname: path.extname(file), + dirname: path.dirname(file), + basename: path.basename(file) + }, + options: {} + } + } + + if (options.config) { + if (options.config.path) { + rc.path = path.resolve(options.config.path) + } + + if (options.config.ctx) { + rc.ctx.options = options.config.ctx + } + } + + rc.ctx.webpack = this; + + return postcssrc(rc.ctx, rc.path) + }).then((config) => { + if (!config) config = {} + + if (config.file) this.addDependency(config.file) + + // Disable override `to` option from `postcss.config.js` + if (config.options.to) delete config.options.to + // Disable override `from` option from `postcss.config.js` + if (config.options.from) delete config.options.from + + let plugins = config.plugins || [] + let options = Object.assign({ + from: file, + map: sourceMap + ? sourceMap === 'inline' + ? { inline: true, annotation: false } + : { inline: false, annotation: false } + : false + }, config.options) + + // Loader Exec (Deprecated) + // https://webpack.js.org/api/loaders/#deprecated-context-properties + if (options.parser === 'postcss-js') { + css = this.exec(css, this.resource) + } + + if (typeof options.parser === 'string') { + options.parser = require(options.parser) + } + + if (typeof options.syntax === 'string') { + options.syntax = require(options.syntax) + } + + if (typeof options.stringifier === 'string') { + options.stringifier = require(options.stringifier) + } + + // Loader API Exec (Deprecated) + // https://webpack.js.org/api/loaders/#deprecated-context-properties + if (config.exec) { + css = this.exec(css, this.resource) + } + + if (sourceMap && typeof map === 'string') map = JSON.parse(map) + if (sourceMap && map) options.map.prev = map + + return postcss(plugins) + .process(css, options) + .then((result) => { + result.warnings().forEach((msg) => this.emitWarning(msg.toString())) + + result.messages.forEach((msg) => { + if (msg.type === 'dependency') this.addDependency(msg.file) + }) + + css = result.css + map = result.map ? result.map.toJSON() : null + + if (map) { + map.file = path.resolve(map.file) + map.sources = map.sources.map((src) => path.resolve(src)) + } + + if (!meta) meta = {} + + meta.ast = { 'type': 'postcss', root: result.root } + meta.messages = result.messages + + if (this.loaderIndex === 0) { + /** + * @memberof loader + * @callback cb + * + * @param {Object} null Error + * @param {String} result Result (JS Module) + * @param {Object} map Source Map + */ + cb(null, `module.exports = ${JSON.stringify(css)}`, map) + + return null + } + + /** + * @memberof loader + * @callback cb + * + * @param {Object} null Error + * @param {String} css Result (Raw Module) + * @param {Object} map Source Map + */ + cb(null, css, map, meta) + + return null + }) + }).catch((err) => { + if (err.file) this.addDependency(err.file) + + return err.name === 'CssSyntaxError' ? cb(new SyntaxError(err)) : cb(err) + }) +} diff --git a/node_modules/postcss-loader/lib/options.js b/node_modules/postcss-loader/lib/options.js new file mode 100644 index 00000000..980e9366 --- /dev/null +++ b/node_modules/postcss-loader/lib/options.js @@ -0,0 +1,25 @@ +'use strict' + +module.exports = function parseOptions (params) { + if (typeof params.plugins === 'function') { + params.plugins = params.plugins.call(this, this) + } + + let plugins + + if (typeof params.plugins === 'undefined') plugins = [] + else if (Array.isArray(params.plugins)) plugins = params.plugins + else plugins = [ params.plugins ] + + const options = {} + + if (typeof params !== 'undefined') { + options.parser = params.parser + options.syntax = params.syntax + options.stringifier = params.stringifier + } + + const exec = params && params.exec + + return Promise.resolve({ options: options, plugins: plugins, exec: exec }) +} diff --git a/node_modules/postcss-loader/lib/options.json b/node_modules/postcss-loader/lib/options.json new file mode 100644 index 00000000..e4546157 --- /dev/null +++ b/node_modules/postcss-loader/lib/options.json @@ -0,0 +1,43 @@ +{ + "type": "object", + "properties": { + "config": { + "type": "object", + "properties": { + "path": { + "type": "string" + }, + "ctx": { + "type": "object" + } + }, + "additionalProperties": false + }, + "exec": { + "type": "boolean" + }, + "ident": { + "type": "string" + }, + "parser": { + "type": [ "string", "object" ] + }, + "syntax": { + "type": [ "string", "object" ] + }, + "stringifier": { + "type": [ "string", "object" ] + }, + "plugins": { + "anyOf": [ + { "type": "array" }, + { "type": "object" }, + { "instanceof": "Function" } + ] + }, + "sourceMap": { + "type": [ "string", "boolean" ] + } + }, + "additionalProperties": true +} diff --git a/node_modules/postcss-loader/node_modules/postcss/CHANGELOG.md b/node_modules/postcss-loader/node_modules/postcss/CHANGELOG.md new file mode 100644 index 00000000..e2cd381e --- /dev/null +++ b/node_modules/postcss-loader/node_modules/postcss/CHANGELOG.md @@ -0,0 +1,552 @@ +# Change Log +This project adheres to [Semantic Versioning](http://semver.org/). + +## 6.0.23 +* Fix parsing nested at-rules without semicolon, params, and spaces. + +## 6.0.22 +* Fix `Node#prev` and `Node#next` on missed parent. + +## 6.0.21 +* Rename Chinese docs to fix `yarnpkg.com` issue. + +## 6.0.20 +* Better error message on `null` as input CSS. + +## 6.0.19 +* Fix TypeScript definitions for source maps (by Oleh Kuchuk). +* Fix `source` field in TypeScript definitions (by Sylvain Pollet-Villard). + +## 6.0.18 +* Use primitive object in TypeScript definitions (by Sylvain Pollet-Villard). + +## 6.0.17 +* Fix parsing comment in selector between word tokens (by Oleh Kuchuk). + +## 6.0.16 +* Fix warning text (by Michael Keller). + +## 6.0.15 +* Add warning about missed `from` option on `process().then()` call. +* Add IE 10 support. + +## 6.0.14 +* Fix TypeScript definitions (by Jed Mao). + +## 6.0.13 +* Fix TypeScript definitions for case of multiple PostCSS versions + in `node_modules` (by Chris Eppstein). +* Use `source-map` 0.6. + +## 6.0.12 +* Don’t copy `*` hack to declaration indent. + +## 6.0.11 +* Add upper case `!IMPORTANT` support. + +## 6.0.10 +* Reduce PostCSS size in webpack bundle. + +## 6.0.9 +* Improve error message for plugin with old PostCSS (by Igor Adamenko). + +## 6.0.8 +* Fix Node.js 4.2.2 support. + +## 6.0.7 +* Fix base64 decoding for old Node.js and browser. + +## 6.0.6 +* Fix `end` position in at-rule without semicolon (by Oleh Kuchuk). + +## 6.0.5 +* Move Babel config from `package.json` for `node_modules` compiling cases. + +## 6.0.4 +* Fix parsing `;;` after rules. +* Use Chalk 2.0. + +## 6.0.3 +* Fix escape sequences parsing (by Oleh Kuchuk). +* Added ability to force disable colors with an environment variable. +* Improved color detection of some terminal apps. + +## 6.0.2 +* Keep `raws.before` on moving `Root` children to new `Root`. + +## 6.0.1 +* Fix parser extensibility to use it in Safe Parser. + +## 6.0 “Marquis Orias” +* Remove node.js 0.12 support. +* Remove deprecated method from PostCSS 4. +* Insert methods remove child from previous parent, instead of closing. +* Insert methods and cloning doesn’t clean `raws` anymore. +* Methods `moveTo`, `moveAfter`, `moveBefore` were deprecated. +* Options was changed in `Plugin#process(css, processOptions, pluginOptions)`. +* Add stream parser to reduce memory usage (by Oleh Kuchuk). +* Add `before()`/`after()` shortcuts for `node.parent.insertBefore(node, x)`. +* Add `Rule#raws.ownSemicolon` for semicolon after templates for `@apply`. +* Use `babel-preset-env` to compile npm package. +* Remove `js-base64` from dependencies (by Roman Dvornov). +* Fix error message on single `:` in CSS. +* Move tests to Jest. +* Clean up test (by Gabriel Kalani). + +## 5.2.18 +* Fix TypeScript definitions for case of multiple PostCSS versions + in `node_modules` (by Chris Eppstein). + +## 5.2.17 +* Add `postcss-sass` suggestion to syntax error on `.sass` input. + +## 5.2.16 +* Better error on wrong argument in node constructor. + +## 5.2.15 +* Fix TypeScript definitions (by bumbleblym). + +## 5.2.14 +* Fix browser bundle building in webpack (by janschoenherr). + +## 5.2.13 +* Do not add comment to important raws. +* Fix JSDoc (by Dmitry Semigradsky). + +## 5.2.12 +* Fix typo in deprecation message (by Garet McKinley). + +## 5.2.11 +* Fix TypeScript definitions (by Jed Mao). + +## 5.2.10 +* Fix TypeScript definitions (by Jed Mao). + +## 5.2.9 +* Update TypeScript definitions (by Jed Mao). + +## 5.2.8 +* Fix error message (by Ben Briggs). + +## 5.2.7 +* Better error message on syntax object in plugins list. + +## 5.2.6 +* Fix `postcss.vendor` for values with spaces (by 刘祺). + +## 5.2.5 +* Better error message on unclosed string (by Ben Briggs). + +## 5.2.4 +* Improve terminal CSS syntax highlight (by Simon Lydell). + +## 5.2.3 +* Better color highlight in syntax error code frame. +* Fix color highlight support in old systems. + +## 5.2.2 +* Update `Processor#version`. + +## 5.2.1 +* Fix source map path for CSS without `from` option (by Michele Locati). + +## 5.2 “Duke Vapula” +* Add syntax highlight to code frame in syntax error (by Andrey Popp). +* Use Babel code frame style and size in syntax error. +* Add `[` and `]` tokens to parse `[attr=;] {}` correctly. +* Add `ignoreErrors` options to tokenizer (by Andrey Popp). +* Fix error position on tab indent (by Simon Lydell). + +## 5.1.2 +* Suggests SCSS/Less parsers on parse errors depends on file extension. + +## 5.1.1 +* Fix TypeScript definitions (by Efremov Alexey). + +## 5.1 “King and President Zagan” +* Add URI in source map support (by Mark Finger). +* Add `map.from` option (by Mark Finger). +* Add `` mappings for nodes without source (by Bogdan Chadkin). +* Add function value support to `map.prev` option (by Chris Montoro). +* Add declaration value type check in shortcut creating (by 刘祺). +* `Result#warn` now returns new created warning. +* Don’t call plugin creator in `postcss.plugin` call. +* Add source maps to PostCSS ES5 build. +* Add JSDoc to PostCSS classes. +* Clean npm package from unnecessary docs. + +## 5.0.21 +* Fix support with input source mao with `utf8` encoding name. + +## 5.0.20 +* Fix between raw value parsing (by David Clark). +* Update TypeScript definitions (by Jed Mao). +* Clean fake node.source after `append(string)`. + +## 5.0.19 +* Fix indent-based syntaxes support. + +## 5.0.18 +* Parse new lines according W3C CSS syntax specification. + +## 5.0.17 +* Fix options argument in `Node#warn` (by Ben Briggs). +* Fix TypeScript definitions (by Jed Mao). + +## 5.0.16 +* Fix CSS syntax error position on unclosed quotes. + +## 5.0.15 +* Fix `Node#clone()` on `null` value somewhere in node. + +## 5.0.14 +* Allow to use PostCSS in webpack bundle without JSON loader. + +## 5.0.13 +* Fix `index` and `word` options in `Warning#toString` (by Bogdan Chadkin). +* Fix input source content loading in errors. +* Fix map options on using `LazyResult` as input CSS. +* 100% test coverage. +* Use Babel 6. + +## 5.0.12 +* Allow passing a previous map with no mappings (by Andreas Lind). + +## 5.0.11 +* Increase plugins performance by 1.5 times. + +## 5.0.10 +* Fix warning from nodes without source. + +## 5.0.9 +* Fix source map type detection (by @asan). + +## 5.0.8 +* Fixed a missed step in `5.0.7` that caused the module to be published as + ES6 code. + +## 5.0.7 +* PostCSS now requires that node 0.12 is installed via the engines property + in package.json (by Howard Zuo). + +## 5.0.6 +* Fix parsing nested at-rule without semicolon (by Matt Drake). +* Trim `Declaration#value` (by Bogdan Chadkin). + +## 5.0.5 +* Fix multi-tokens property parsing (by Matt Drake). + +## 5.0.4 +* Fix start position in `Root#source`. +* Fix source map annotation, when CSS uses `\r\n` (by Mohammad Younes). + +## 5.0.3 +* Fix `url()` parsing. +* Fix using `selectors` in `Rule` constructor. +* Add start source to `Root` node. + +## 5.0.2 +* Fix `remove(index)` to be compatible with 4.x plugin. + +## 5.0.1 +* Fix PostCSS 4.x plugins compatibility. +* Fix type definition loading (by Jed Mao). + +## 5.0 “President Valac” +* Remove `safe` option. Move Safe Parser to separate project. +* `Node#toString` does not include `before` for root nodes. +* Remove plugin returning `Root` API. +* Remove Promise polyfill for node.js 0.10. +* Deprecate `eachInside`, `eachDecl`, `eachRule`, `eachAtRule` and `eachComment` + in favor of `walk`, `walkDecls`, `walkRules`, `walkAtRules` and `walkComments` + (by Jed Mao). +* Deprecate `Container#remove` and `Node#removeSelf` + in favor of `Container#removeChild` and `Node#remove` (by Ben Briggs). +* Deprecate `Node#replace` in favor of `replaceWith` (by Ben Briggs). +* Deprecate raw properties in favor of `Node#raws` object. +* Deprecate `Node#style` in favor of `raw`. +* Deprecate `CssSyntaxError#generated` in favor of `input`. +* Deprecate `Node#cleanStyles` in favor of `cleanRaws`. +* Deprecate `Root#prevMap` in favor of `Root.source.input.map`. +* Add `syntax`, `parser` and `stringifier` options for Custom Syntaxes. +* Add stringifier option to `Node#toString`. +* Add `Result#content` alias for non-CSS syntaxes. +* Add `plugin.process(css)` shortcut to every plugin function (by Ben Briggs). +* Add multiple nodes support to insert methods (by Jonathan Neal). +* Add `Node#warn` shortcut (by Ben Briggs). +* Add `word` and `index` options to errors and warnings (by David Clark). +* Add `line`, `column` properties to `Warning`. +* Use `supports-color` library to detect color support in error output. +* Add type definitions for TypeScript plugin developers (by Jed Mao). +* `Rule#selectors` setter detects separators. +* Add `postcss.stringify` method. +* Throw descriptive errors for incorrectly formatted plugins. +* Add docs to npm release. +* Fix `url()` parsing. +* Fix Windows support (by Jed Mao). + +## 4.1.16 +* Fix errors without stack trace. + +## 4.1.15 +* Allow asynchronous plugins to change processor plugins list (by Ben Briggs). + +## 4.1.14 +* Fix for plugins packs defined by `postcss.plugin`. + +## 4.1.13 +* Fix input inlined source maps with UTF-8 encoding. + +## 4.1.12 +* Update Promise polyfill. + +## 4.1.11 +* Fix error message on wrong plugin format. + +## 4.1.10 +* Fix Promise behavior on sync plugin errors. +* Automatically fill `plugin` field in `CssSyntaxError`. +* Fix warning message (by Ben Briggs). + +## 4.1.9 +* Speed up `node.clone()`. + +## 4.1.8 +* Accepts `Processor` instance in `postcss()` constructor too. + +## 4.1.7 +* Speed up `postcss.list` (by Bogdan Chadkin). + +## 4.1.6 +* Fix Promise behavior on parsing error. + +## 4.1.5 +* Parse at-words in declaration values. + +## 4.1.4 +* Fix Promise polyfill dependency (by Anton Yakushev and Matija Marohnić). + +## 4.1.3 +* Add Promise polyfill for node.js 0.10 and IE. + +## 4.1.2 +* List helpers can be accessed independently `var space = postcss.list.space`. + +## 4.1.1 +* Show deprecated message only once. + +## 4.1 “Marquis Andras” +* Asynchronous plugin support. +* Add warnings from plugins and `Result#messages`. +* Add `postcss.plugin()` to create plugins with a standard API. +* Insert nodes by CSS string. +* Show version warning message on error from an outdated plugin. +* Send `Result` instance to plugins as the second argument. +* Add `CssSyntaxError#plugin`. +* Add `CssSyntaxError#showSourceCode()`. +* Add `postcss.list` and `postcss.vendor` aliases. +* Add `Processor#version`. +* Parse wrong closing bracket. +* Parse `!important` statement with spaces and comments inside (by Ben Briggs). +* Throw an error on declaration without `prop` or `value` (by Philip Peterson). +* Fix source map mappings position. +* Add indexed source map support. +* Always set `error.generated`. +* Clean all source map annotation comments. + +## 4.0.6 +* Remove `babel` from released package dependencies (by Andres Suarez). + +## 4.0.5 +* Fix error message on double colon in declaration. + +## 4.0.4 +* Fix indent detection in some rare cases. + +## 4.0.3 +* Faster API with 6to5 Loose mode. +* Fix indexed source maps support. + +## 4.0.2 +* Do not copy IE hacks to code style. + +## 4.0.1 +* Add `source.input` to `Root` too. + +## 4.0 “Duke Flauros” +* Rename `Container#childs` to `nodes`. +* Rename `PostCSS#processors` to `plugins`. +* Add `Node#replaceValues()` method. +* Add `Node#moveTo()`, `moveBefore()` and `moveAfter()` methods. +* Add `Node#cloneBefore()` and `cloneAfter()` shortcuts. +* Add `Node#next()`, `prev()` and `root()` shortcuts. +* Add `Node#replaceWith()` method. +* Add `Node#error()` method. +* Add `Container#removeAll()` method. +* Add filter argument to `eachDecl()` and `eachAtRule()`. +* Add `Node#source.input` and move `source.file` or `source.id` to `input`. +* Change code indent, when node was moved. +* Better fix code style on `Rule`, `AtRule` and `Comment` nodes changes. +* Allow to create rules and at-rules by hash shortcut in append methods. +* Add class name to CSS syntax error output. + +## 3.0.7 +* Fix IE filter parsing with multiple commands. +* Safer way to consume PostCSS object as plugin (by Maxime Thirouin). + +## 3.0.6 +* Fix missing semicolon when comment comes after last declaration. +* Fix Safe Mode declaration parsing on unclosed blocks. + +## 3.0.5 +* Fix parser to support difficult cases with backslash escape and brackets. +* Add `CssSyntaxError#stack` (by Maxime Thirouin). + +## 3.0.4 +* Fix Safe Mode on unknown word before declaration. + +## 3.0.3 +* Increase tokenizer speed (by Roman Dvornov). + +## 3.0.2 +* Fix empty comment parsing. +* Fix `Root#normalize` in some inserts. + +## 3.0.1 +* Fix Rhino JS runtime support. +* Typo in deprecated warning (by Maxime Thirouin). + +## 3.0 “Marquis Andrealphus” +* New parser, which become the fastest ever CSS parser written in JavaScript. +* Parser can now parse declarations and rules in one parent (like in `@page`) + and nested declarations for plugins like `postcss-nested`. +* Child nodes array is now in `childs` property, instead of `decls` and `rules`. +* `map.inline` and `map.sourcesContent` options are now `true` by default. +* Fix iterators (`each`, `insertAfter`) on children array changes. +* Use previous source map to show origin source of CSS syntax error. +* Use 6to5 ES6 compiler, instead of ES6 Transpiler. +* Use code style for manually added rules from existing rules. +* Use `from` option from previous source map `file` field. +* Set `to` value to `from` if `to` option is missing. +* Use better node source name when missing `from` option. +* Show a syntax error when `;` is missed between declarations. +* Allow to pass `PostCSS` instance or list of plugins to `use()` method. +* Allow to pass `Result` instance to `process()` method. +* Trim Unicode BOM on source maps parsing. +* Parse at-rules without spaces like `@import"file"`. +* Better previous `sourceMappingURL` annotation comment cleaning. +* Do not remove previous `sourceMappingURL` comment on `map.annotation: false`. +* Parse nameless at-rules in Safe Mode. +* Fix source map generation for nodes without source. +* Fix next child `before` if `Root` first child got removed. + +## 2.2.6 +* Fix map generation for nodes without source (by Josiah Savary). + +## 2.2.5 +* Fix source map with BOM marker support (by Mohammad Younes). +* Fix source map paths (by Mohammad Younes). + +## 2.2.4 +* Fix `prepend()` on empty `Root`. + +## 2.2.3 +* Allow to use object shortcut in `use()` with functions like `autoprefixer`. + +## 2.2.2 +* Add shortcut to set processors in `use()` via object with `.postcss` property. + +## 2.2.1 +* Send `opts` from `Processor#process(css, opts)` to processors. + +## 2.2 “Marquis Cimeies” +* Use GNU style syntax error messages. +* Add `Node#replace` method. +* Add `CssSyntaxError#reason` property. + +## 2.1.2 +* Fix UTF-8 support in inline source map. +* Fix source map `sourcesContent` if there is no `from` and `to` options. + +## 2.1.1 +* Allow to miss `to` and `from` options for inline source maps. +* Add `Node#source.id` if file name is unknown. +* Better detect splitter between rules in CSS concatenation tools. +* Automatically clone node in insert methods. + +## 2.1 “King Amdusias” +* Change Traceur ES6 compiler to ES6 Transpiler. +* Show broken CSS line in syntax error. + +## 2.0 “King Belial” +* Project was rewritten from CoffeeScript to ES6. +* Add Safe Mode to works with live input or with hacks from legacy code. +* More safer parser to pass all hacks from Browserhacks.com. +* Use real properties instead of magic getter/setter for raw properties. + +## 1.0 “Marquis Decarabia” +* Save previous source map for each node to support CSS concatenation + with multiple previous maps. +* Add `map.sourcesContent` option to add origin content to `sourcesContent` + inside map. +* Allow to set different place of output map in annotation comment. +* Allow to use arrays and `Root` in `Container#append` and same methods. +* Add `Root#prevMap` with information about previous map. +* Allow to use latest PostCSS from GitHub by npm. +* `Result` now is lazy and it will generate output CSS only if you use `css` + or `map` property. +* Use separated `map.prev` option to set previous map. +* Rename `inlineMap` option to `map.inline`. +* Rename `mapAnnotation` option to `map.annotation`. +* `Result#map` now return `SourceMapGenerator` object, instead of string. +* Run previous map autodetect only if input CSS contains annotation comment. +* Add `map: 'inline'` shortcut for `map: { inline: true }` option. +* `Node#source.file` now will contains absolute path. +* Clean `Declaration#between` style on node clone. + +## 0.3.5 +* Allow to use `Root` or `Result` as first argument in `process()`. +* Save parsed AST to `Result#root`. + +## 0.3.4 +* Better space symbol detect to read UTF-8 BOM correctly. + +## 0.3.3 +* Remove source map hacks by using new Mozilla’s `source-map` (by Simon Lydell). + +## 0.3.2 +* Add URI encoding support for inline source maps. + +## 0.3.1 +* Fix relative paths from previous source map. +* Safer space split in `Rule#selectors` (by Simon Lydell). + +## 0.3 “Prince Seere” +* Add `Comment` node for comments between declarations or rules. +* Add source map annotation comment to output CSS. +* Allow to inline source map to annotation comment by data:uri. +* Fix source maps on Windows. +* Fix source maps for subdirectory (by Dmitry Nikitenko and Simon Lydell). +* Autodetect previous source map. +* Add `first` and `last` shortcuts to container nodes. +* Parse `!important` to separated property in `Declaration`. +* Allow to break iteration by returning `false`. +* Copy code style to new nodes. +* Add `eachInside` method to recursively iterate all nodes. +* Add `selectors` shortcut to get selectors array. +* Add `toResult` method to `Rule` to simplify work with several input files. +* Clean declaration’s `value`, rule’s `selector` and at-rule’s `params` + by storing spaces in `between` property. + +## 0.2 “Duke Dantalion” +* Add source map support. +* Add shortcuts to create nodes. +* Method `process()` now returns object with `css` and `map` keys. +* Origin CSS file option was renamed from `file` to `from`. +* Rename `Node#remove()` method to `removeSelf()` to fix name conflict. +* Node source was moved to `source` property with origin file + and node end position. +* You can set own CSS generate function. + +## 0.1 “Count Andromalius” +* Initial release. diff --git a/node_modules/postcss-loader/node_modules/postcss/CONTRIBUTING.md b/node_modules/postcss-loader/node_modules/postcss/CONTRIBUTING.md new file mode 100644 index 00000000..227caa27 --- /dev/null +++ b/node_modules/postcss-loader/node_modules/postcss/CONTRIBUTING.md @@ -0,0 +1,78 @@ +# Contributing Guide to PostCSS + +If you want contribute to PostCSS, there are few things that you should +be familiar with. + + +## In Case You Have Question About Using PostCSS + +* **Ask for help in [the chat]** + + If you stuck on something there is a big chance + that someone had similar problem before. + +[the chat]: https://gitter.im/postcss/postcss + + +## Adding Your Plugin to the List + +If you created or found a plugin and want to add it to PostCSS plugins list +follow this simple steps. + +PR should not change plugins defined in README it contains only favorite plugins +and moderated by PostCSS author. + +Plugins submitted by community located in [`docs/plugins`]. + +* **Keep plugins order** + + Be sure that plugin not presented yet and find suitable position + in alphabetic order for it. + But plugins with `postcss-` prefix should come first. + +* **Check spelling** + + Before submitting PR be sure that spelling check pass. + For that run command `npm test`. + If it fails with unknown word error, add it as word + to `.yaspellerrc` dictionary. + +* **Check PostCSS plugin guideline** + + Provided plugin should match plugin [guidelines]. + +- **Provide link to suggested plugin** + + Make sure your pull request description contains link to plugin + you are willing to add. + +[`docs/plugins`]: https://github.com/postcss/postcss/blob/master/docs/plugins.md +[guidelines]: https://github.com/postcss/postcss/blob/master/docs/guidelines/plugin.md + + +## TypeScript Declaration Improvements + +If you found a bug or want to add certain improvements to types declaration file + +* **Check current TypeScript styling** + + Be sure that your changes match TypeScript styling rules defined in typings file. + * We use classes for existing JS classes like `Stringifier`. + * Namespaces used for separating functions related to same subject. + * Interfaces used for defining custom types. + + Make sure you read through declaration file writing [best practices] + by TypeScript team. + +[best practices]: https://www.typescriptlang.org/docs/handbook/declaration-files/do-s-and-don-ts.html + + +## Core Development + +If you want to add new feature or fix existed issue + +- **Become familiar with PostCSS architecture** + + For gentle intro to PostCSS architecture look through our [guide]. + +[guide]: https://github.com/postcss/postcss/blob/master/docs/architecture.md diff --git a/node_modules/postcss-loader/node_modules/postcss/LICENSE b/node_modules/postcss-loader/node_modules/postcss/LICENSE new file mode 100644 index 00000000..da057b45 --- /dev/null +++ b/node_modules/postcss-loader/node_modules/postcss/LICENSE @@ -0,0 +1,20 @@ +The MIT License (MIT) + +Copyright 2013 Andrey Sitnik + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/postcss-loader/node_modules/postcss/README-cn.md b/node_modules/postcss-loader/node_modules/postcss/README-cn.md new file mode 100644 index 00000000..4846ed96 --- /dev/null +++ b/node_modules/postcss-loader/node_modules/postcss/README-cn.md @@ -0,0 +1,349 @@ +# PostCSS [![Gitter][chat-img]][chat] + +哲学家的石头 - PostCSS 的 logo + +[chat-img]: https://img.shields.io/badge/Gitter-Join_the_PostCSS_chat-brightgreen.svg +[chat]: https://gitter.im/postcss/postcss + +PostCSS 是一个允许使用 JS 插件转换样式的工具。 +这些插件可以检查(lint)你的 CSS,支持 CSS Variables 和 Mixins, +编译尚未被浏览器广泛支持的先进的 CSS 语法,内联图片,以及其它很多优秀的功能。 + +PostCSS 在工业界被广泛地应用,其中不乏很多有名的行业领导者,如:维基百科,Twitter,阿里巴巴, +JetBrains。PostCSS 的 [Autoprefixer] 插件是最流行的 CSS 处理工具之一。 + +PostCSS 接收一个 CSS 文件并提供了一个 API 来分析、修改它的规则(通过把 CSS 规则转换成一个[抽象语法树]的方式)。在这之后,这个 API 便可被许多[插件]利用来做有用的事情,比如寻错或自动添加 CSS vendor 前缀。 + +**Twitter 账号:** [@postcss](https://twitter.com/postcss)
+**支持 / 讨论:** [Gitter](https://gitter.im/postcss/postcss)
+ +如果需要 PostCSS 商业支持(如咨询,提升公司的前端文化, +PostCSS 插件),请联系 [Evil Martians](https://evilmartians.com/?utm_source=postcss) +邮箱 。 + +[抽象语法树]: https://zh.wikipedia.org/wiki/%E6%8A%BD%E8%B1%A1%E8%AA%9E%E6%B3%95%E6%A8%B9 +[Autoprefixer]: https://github.com/postcss/autoprefixer +[插件]: https://github.com/postcss/postcss/blob/master/README-cn.md#%E6%8F%92%E4%BB%B6 + + + 由 Evil Martians 赞助 + + +## 插件 + +截止到目前,PostCSS 有 200 多个插件。你可以在 [插件列表] 或 [搜索目录] 找到它们。 +下方的列表是我们最喜欢的插件 - 它们很好地演示了我们可以用 PostCSS 做些什么。 + +如果你有任何新的想法,[开发 PostCSS 插件] 非常简单易上手。 + +[搜索目录]: http://postcss.parts +[插件列表]: https://github.com/postcss/postcss/blob/master/docs/plugins.md + +### 解决全局 CSS 的问题 + +* [`postcss-use`] 允许你在 CSS 里明确地设置 PostCSS 插件,并且只在当前文件执行它们。 +* [`postcss-modules`] 和 [`react-css-modules`] 可以自动以组件为单位隔绝 CSS 选择器。 +* [`postcss-autoreset`] 是全局样式重置的又一个选择,它更适用于分离的组件。 +* [`postcss-initial`] 添加了 `all: initial` 的支持,重置了所有继承的样式。 +* [`cq-prolyfill`] 添加了容器查询的支持,允许添加响应于父元素宽度的样式. + +### 提前使用先进的 CSS 特性 + +* [`autoprefixer`] 添加了 vendor 浏览器前缀,它使用 Can I Use 上面的数据。 +* [`postcss-preset-env`] 允许你使用未来的 CSS 特性。 + +### 更佳的 CSS 可读性 + +* [`precss`] 囊括了许多插件来支持类似 Sass 的特性,比如 CSS 变量,套嵌,mixins 等。 +* [`postcss-sorting`] 给规则的内容以及@规则排序。 +* [`postcss-utilities`] 囊括了最常用的简写方式和书写帮助。 +* [`short`] 添加并拓展了大量的缩写属性。 + +### 图片和字体 + +* [`postcss-assets`] 可以插入图片尺寸和内联文件。 +* [`postcss-sprites`] 能生成雪碧图。 +* [`font-magician`] 生成所有在 CSS 里需要的 `@font-face` 规则。 +* [`postcss-inline-svg`] 允许你内联 SVG 并定制它的样式。 +* [`postcss-write-svg`] 允许你在 CSS 里写简单的 SVG。 + +### 提示器(Linters) + +* [`stylelint`] 是一个模块化的样式提示器。 +* [`stylefmt`] 是一个能根据 `stylelint` 规则自动优化 CSS 格式的工具。 +* [`doiuse`] 提示 CSS 的浏览器支持性,使用的数据来自于 Can I Use。 +* [`colorguard`] 帮助你保持一个始终如一的调色板。 + +### 其它 + +* [`postcss-rtl`] 在单个 CSS 文件里组合了两个方向(左到右,右到左)的样式。 +* [`cssnano`] 是一个模块化的 CSS 压缩器。 +* [`lost`] 是一个功能强大的 `calc()` 栅格系统。 +* [`rtlcss`] 镜像翻转 CSS 样式,适用于 right-to-left 的应用场景。 + +[`postcss-inline-svg`]: https://github.com/TrySound/postcss-inline-svg +[`postcss-preset-env`]: https://github.com/jonathantneal/postcss-preset-env +[`react-css-modules`]: https://github.com/gajus/react-css-modules +[`postcss-autoreset`]: https://github.com/maximkoretskiy/postcss-autoreset +[`postcss-write-svg`]: https://github.com/jonathantneal/postcss-write-svg +[`postcss-utilities`]: https://github.com/ismamz/postcss-utilities +[`postcss-initial`]: https://github.com/maximkoretskiy/postcss-initial +[`postcss-sprites`]: https://github.com/2createStudio/postcss-sprites +[`postcss-modules`]: https://github.com/outpunk/postcss-modules +[`postcss-sorting`]: https://github.com/hudochenkov/postcss-sorting +[`postcss-assets`]: https://github.com/assetsjs/postcss-assets +[开发 PostCSS 插件]: https://github.com/postcss/postcss/blob/master/docs/writing-a-plugin.md +[`font-magician`]: https://github.com/jonathantneal/postcss-font-magician +[`autoprefixer`]: https://github.com/postcss/autoprefixer +[`cq-prolyfill`]: https://github.com/ausi/cq-prolyfill +[`postcss-rtl`]: https://github.com/vkalinichev/postcss-rtl +[`postcss-use`]: https://github.com/postcss/postcss-use +[`css-modules`]: https://github.com/css-modules/css-modules +[`colorguard`]: https://github.com/SlexAxton/css-colorguard +[`stylelint`]: https://github.com/stylelint/stylelint +[`stylefmt`]: https://github.com/morishitter/stylefmt +[`cssnano`]: http://cssnano.co +[`precss`]: https://github.com/jonathantneal/precss +[`doiuse`]: https://github.com/anandthakker/doiuse +[`rtlcss`]: https://github.com/MohammadYounes/rtlcss +[`short`]: https://github.com/jonathantneal/postcss-short +[`lost`]: https://github.com/peterramsing/lost + +## 语法 + +PostCSS 可以转化样式到任意语法,不仅仅是 CSS。 +如果还没有支持你最喜欢的语法,你可以编写一个解释器以及(或者)一个 stringifier 来拓展 PostCSS。 + +* [`sugarss`] 是一个以缩进为基础的语法,类似于 Sass 和 Stylus。 +* [`postcss-syntax`] 通过文件扩展名自动切换语法。 +* [`postcss-html`] 解析类 HTML 文件里`