Added logging, changed some directory structure

This commit is contained in:
2018-01-13 21:33:40 -05:00
parent f079a5f067
commit 8e72ffb917
73656 changed files with 35284 additions and 53718 deletions

View File

@@ -0,0 +1,33 @@
<a name="1.2.0"></a>
# [1.2.0](https://github.com/michael-ciniawsky/postcss-load-config/compare/v1.1.0...v1.2.0) (2017-02-13)
### Features
* **index:** allow extensions for .postcssrc ([0d3bf35](https://github.com/michael-ciniawsky/postcss-load-config/commit/0d3bf35))
<a name="1.1.0"></a>
# [1.1.0](https://github.com/michael-ciniawsky/postcss-load-config/compare/v1.0.0...v1.1.0) (2017-01-11)
### Features
* **index:** config.file, improve error handling ([a6c32fd](https://github.com/michael-ciniawsky/postcss-load-config/commit/a6c32fd))
<a name="1.0.0"></a>
# [1.0.0]((https://github.com/michael-ciniawsky/postcss-load-config/compare/v1.0.0-rc...1.0.0)) (2016-10-27)
### Bug Fixes
* **index:** behavior when config loading fails ([b549bc6](https://github.com/michael-ciniawsky/postcss-load-config/commit/b549bc6)), closes [#26](https://github.com/michael-ciniawsky/postcss-load-config/issues/26)
* **index:** set NODE_ENV when undefined ([b24501c](https://github.com/michael-ciniawsky/postcss-load-config/commit/b24501c))
* **index:** support node v0.12 ([0bbfa94](https://github.com/michael-ciniawsky/postcss-load-config/commit/0bbfa94))
### Features
* **index:** function support, jsdoc, cleanups ([a78c580](https://github.com/michael-ciniawsky/postcss-load-config/commit/a78c580))

View File

@@ -0,0 +1,21 @@
License (MIT)
Copyright (c) Michael Ciniawsky <michael.ciniawsky@gmail.com>
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.

View File

@@ -0,0 +1,405 @@
[![npm][npm]][npm-url]
[![node][node]][node-url]
[![deps][deps]][deps-url]
[![tests][tests]][tests-url]
[![coverage][cover]][cover-url]
[![code style][style]][style-url]
[![chat][chat]][chat-url]
<div align="center">
<img width="100" height="100" title="Load Options" src="http://michael-ciniawsky.github.io/postcss-load-options/logo.svg">
<a href="https://github.com/postcss/postcss">
<img width="110" height="110" title="PostCSS" src="http://postcss.github.io/postcss/logo.svg" hspace="10">
</a>
<img width="100" height="100" title="Load Plugins" src="http://michael-ciniawsky.github.io/postcss-load-plugins/logo.svg">
<h1>Load Config</h1>
</div>
<h2 align="center">Install</h2>
```bash
npm i -D postcss-load-config
```
<h2 align="center">Usage</h2>
```
npm i -S|-D postcss-plugin
```
Install plugins and save them to your ***package.json*** dependencies/devDependencies.
### `package.json`
Create **`postcss`** section in your projects **`package.json`**.
```
App
| client
| public
|
|- package.json
```
```json
{
"postcss": {
"parser": "sugarss",
"map": false,
"from": "/path/to/src.sss",
"to": "/path/to/dest.css",
"plugins": {
"postcss-plugin": {}
}
}
}
```
### `.postcssrc`
Create a **`.postcssrc`** file in JSON or YAML format.
It's also allowed to use extensions (**`.postcssrc.json`** or **`.postcssrc.yaml`**). That could help your text editor to properly interpret the file.
```
App
| client
| public
|
|- (.postcssrc|.postcssrc.json|.postcssrc.yaml)
|- package.json
```
**`JSON`**
```json
{
"parser": "sugarss",
"map": false,
"from": "/path/to/src.sss",
"to": "/path/to/dest.css",
"plugins": {
"postcss-plugin": {}
}
}
```
**`YAML`**
```yaml
parser: sugarss
map: false
from: "/path/to/src.sss"
to: "/path/to/dest.css"
plugins:
postcss-plugin: {}
```
### `postcss.config.js` or `.postcssrc.js`
You may need some JavaScript logic to generate your config. For this case you can use a file named **`postcss.config.js`** or **`.postcssrc.js`**.
```
App
| client
| public
|
|- (postcss.config.js|.postcssrc.js)
|- package.json
```
You can export the config as an `{Object}`
```js
module.exports = {
parser: 'sugarss',
map: false,
from: '/path/to/src.sss',
to: '/path/to/dest.css',
plugins: {
'postcss-plugin': {}
}
}
```
Or export a `{Function}` that returns the config (more about the param `ctx` below)
```js
module.exports = (ctx) => ({
parser: ctx.parser ? 'sugarss' : false,
map: ctx.env === 'development' ? ctx.map : false,
from: ctx.from,
to: ctx.to,
plugins: {
'postcss-plugin': ctx.plugin
}
})
```
Plugins can be loaded in either using an `{Object}` or an `{Array}`.
##### `{Object}`
```js
module.exports = (ctx) => ({
...options
plugins: {
'postcss-plugin': ctx.plugin
}
})
```
##### `{Array}`
```js
module.exports = (ctx) => ({
...options
plugins: [
require('postcss-plugin')(ctx.plugin)
]
})
```
> :warning: When using an Array, make sure to `require()` them.
<h2 align="center">Options</h2>
**`parser`**:
```js
'parser': 'sugarss'
```
**`syntax`**:
```js
'syntax': 'postcss-scss'
```
**`stringifier`**:
```js
'stringifier': 'midas'
```
[**`map`**:](https://github.com/postcss/postcss/blob/master/docs/source-maps.md)
```js
'map': 'inline'
```
**`from`**:
```js
from: 'path/to/src.css'
```
**`to`**:
```js
to: 'path/to/dest.css'
```
<h2 align="center">Plugins</h2>
### Options
**`{} || null`**: Plugin loads with defaults.
```js
'postcss-plugin': {} || null
```
> :warning: `{}` must be an **empty** object
**`[Object]`**: Plugin loads with given options.
```js
'postcss-plugin': { option: '', option: '' }
```
**`false`**: Plugin will not be loaded.
```js
'postcss-plugin': false
```
### Order
Plugin **order** is determined by declaration in the plugins section.
```js
{
plugins: {
'postcss-plugin': {}, // plugins[0]
'postcss-plugin': {}, // plugins[1]
'postcss-plugin': {} // plugins[2]
}
}
```
<h2 align="center">Context</h2>
When using a function (`postcss.config.js` or `.postcssrc.js`), it is possible to pass context to `postcss-load-config`, which will be evaluated while loading your config. By default `ctx.env (process.env.NODE_ENV)` and `ctx.cwd (process.cwd())` are available.
<h2 align="center">Examples</h2>
**postcss.config.js**
```js
module.exports = (ctx) => ({
parser: ctx.parser ? 'sugarss' : false,
map: ctx.env === 'development' ? ctx.map : false,
plugins: {
'postcss-import': {},
'postcss-nested': {},
cssnano: ctx.env === 'production' ? {} : false
}
})
```
### <img width="80" height="80" src="https://worldvectorlogo.com/logos/nodejs-icon.svg">
```json
"scripts": {
"build": "NODE_ENV=production node postcss",
"start": "NODE_ENV=development node postcss"
}
```
```js
const { readFileSync } = require('fs')
const postcss = require('postcss')
const postcssrc = require('postcss-load-config')
const css = readFileSync('index.sss', 'utf8')
const ctx = { parser: true, map: 'inline' }
postcssrc(ctx).then(({ plugins, options }) => {
postcss(plugins)
.process(css, options)
.then((result) => console.log(result.css))
})
```
### <img width="80" height="80" src="https://worldvectorlogo.com/logos/gulp.svg">
```json
"scripts": {
"build": "NODE_ENV=production gulp",
"start": "NODE_ENV=development gulp"
}
```
```js
const { task, src, dest, series, watch } = require('gulp')
const postcss = require('gulp-postcssrc')
const css = () => {
src('src/*.css')
.pipe(postcss())
.pipe(dest('dest'))
})
task('watch', () => {
watch(['src/*.css', 'postcss.config.js'], css)
})
task('default', series(css, 'watch'))
```
### <img width="80" height="80" src="https://worldvectorlogo.com/logos/webpack.svg">
```json
"scripts": {
"build": "NODE_ENV=production webpack",
"start": "NODE_ENV=development webpack-dev-server"
}
```
```js
module.exports = (env) => ({
module: {
rules: [
{
test: /\.css$/
use: [
'style-loader',
{
loader: 'css-loader',
options: { importLoaders: 1 } }
},
'postcss-loader'
]
}
]
}
})
```
<h2 align="center">Maintainers</h2>
<table>
<tbody>
<tr>
<td align="center">
<img width="150 height="150"
src="https://avatars.githubusercontent.com/u/5419992?v=3&s=150">
<br />
<a href="https://github.com/michael-ciniawsky">Michael Ciniawsky</a>
</td>
<td align="center">
<img width="150 height="150"
src="https://avatars.githubusercontent.com/u/2437969?v=3&s=150">
<br />
<a href="https://github.com/ertrzyiks">Mateusz Derks</a>
</td>
</tr>
<tbody>
</table>
<h2 align="center">Contributors</h2>
<table>
<tbody>
<tr>
<td align="center">
<img width="150" height="150"
src="https://avatars.githubusercontent.com/u/1483538?v=3&s=150">
<br />
<a href="https://github.com/sparty02">Ryan Dunckel</a>
</td>
<td align="center">
<img width="150" height="150"
src="https://avatars.githubusercontent.com/u/6249643?v=3&s=150">
<br />
<a href="https://github.com/pcgilday">Patrick Gilday</a>
</td>
<td align="center">
<img width="150" height="150"
src="https://avatars.githubusercontent.com/u/5603632?v=3&s=150">
<br />
<a href="https://github.com/daltones">Dalton Santos</a>
</td>
</tr>
<tbody>
</table>
[npm]: https://img.shields.io/npm/v/postcss-load-config.svg
[npm-url]: https://npmjs.com/package/postcss-load-config
[node]: https://img.shields.io/node/v/postcss-load-plugins.svg
[node-url]: https://nodejs.org/
[deps]: https://david-dm.org/michael-ciniawsky/postcss-load-config.svg
[deps-url]: https://david-dm.org/michael-ciniawsky/postcss-load-config
[style]: https://img.shields.io/badge/code%20style-standard-yellow.svg
[style-url]: http://standardjs.com/
[tests]: http://img.shields.io/travis/michael-ciniawsky/postcss-load-config.svg
[tests-url]: https://travis-ci.org/michael-ciniawsky/postcss-load-config
[cover]: https://coveralls.io/repos/github/michael-ciniawsky/postcss-load-config/badge.svg
[cover-url]: https://coveralls.io/github/michael-ciniawsky/postcss-load-config
[chat]: https://img.shields.io/gitter/room/postcss/postcss.svg
[chat-url]: https://gitter.im/postcss/postcss

View File

@@ -0,0 +1,69 @@
// ------------------------------------
// # POSTCSS - LOAD CONFIG - INDEX
// ------------------------------------
'use strict'
var resolve = require('path').resolve
var config = require('cosmiconfig')
var assign = require('object-assign')
var loadOptions = require('postcss-load-options/lib/options.js')
var loadPlugins = require('postcss-load-plugins/lib/plugins.js')
/**
* Autoload Config for PostCSS
*
* @author Michael Ciniawsky (@michael-ciniawsky) <michael.ciniawsky@gmail.com>
* @license MIT
*
* @module postcss-load-config
* @version 1.2.0
*
* @requires comsiconfig
* @requires object-assign
* @requires postcss-load-options
* @requires postcss-load-plugins
*
* @method postcssrc
*
* @param {Object} ctx Context
* @param {String} path Config Directory
* @param {Object} options Config Options
*
* @return {Promise} config PostCSS Config
*/
module.exports = function postcssrc (ctx, path, options) {
ctx = assign({ cwd: process.cwd(), env: process.env.NODE_ENV }, ctx)
path = path ? resolve(path) : process.cwd()
options = assign({ rcExtensions: true }, options)
if (!ctx.env) process.env.NODE_ENV = 'development'
var file
return config('postcss', options)
.load(path)
.then(function (result) {
if (!result) throw Error('No PostCSS Config found in: ' + path)
file = result ? result.filepath : ''
return result ? result.config : {}
})
.then(function (config) {
if (typeof config === 'function') config = config(ctx)
else config = assign(config, ctx)
if (!config.plugins) config.plugins = []
return {
plugins: loadPlugins(config),
options: loadOptions(config),
file: file
}
})
}

View File

@@ -0,0 +1,103 @@
{
"_args": [
[
"postcss-load-config@1.2.0",
"C:\\Users\\deranjer\\go\\src\\github.com\\deranjer\\goTorrent\\torrent-project"
]
],
"_from": "postcss-load-config@1.2.0",
"_id": "postcss-load-config@1.2.0",
"_inBundle": false,
"_integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=",
"_location": "/react-scripts/postcss-load-config",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "postcss-load-config@1.2.0",
"name": "postcss-load-config",
"escapedName": "postcss-load-config",
"rawSpec": "1.2.0",
"saveSpec": null,
"fetchSpec": "1.2.0"
},
"_requiredBy": [
"/react-scripts/postcss-loader"
],
"_resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz",
"_spec": "1.2.0",
"_where": "C:\\Users\\deranjer\\go\\src\\github.com\\deranjer\\goTorrent\\torrent-project",
"author": {
"name": "Michael Ciniawky",
"email": "michael.ciniawsky@gmail.com"
},
"bugs": {
"url": "https://github.com/michael-ciniawsky/postcss-load-config/issues"
},
"contributors": [
{
"name": "Mateusz Derks",
"url": "http://ertrzyiks.me"
},
{
"name": "Ryan Dunckel",
"email": "sparty02@gmail.com"
},
{
"name": "Patrick Gilday"
},
{
"name": "Dalton Santos"
}
],
"dependencies": {
"cosmiconfig": "^2.1.0",
"object-assign": "^4.1.0",
"postcss-load-options": "^1.2.0",
"postcss-load-plugins": "^2.3.0"
},
"description": "Autoload Config for PostCSS",
"devDependencies": {
"ava": "^0.18.1",
"coveralls": "^2.11.16",
"cssnano": "^3.10.0",
"jsdoc-to-markdown": "^3.0.0",
"nyc": "^10.1.0",
"postcss": "^5.2.12",
"postcss-cssnext": "^2.8.0",
"postcss-import": "^9.1.0",
"postcss-nested": "^1.0.0",
"postcss-scss": "^0.4.0",
"postcss-sprites": "^4.2.0",
"standard": "^8.6.0",
"standard-changelog": "0.0.1",
"sugarss": "^0.2.0"
},
"engines": {
"node": ">=0.12"
},
"files": [
"index.js"
],
"homepage": "https://github.com/michael-ciniawsky/postcss-load-config#readme",
"keywords": [
"postcss",
"postcss-config"
],
"license": "MIT",
"main": "index.js",
"name": "postcss-load-config",
"repository": {
"type": "git",
"url": "git+https://github.com/michael-ciniawsky/postcss-load-config.git"
},
"scripts": {
"clean": "rm -rf .nyc_output coverage jsdoc-api dmd",
"docs": "jsdoc2md index.js > INDEX.md",
"lint": "standard",
"logs": "standard-changelog -i CHANGELOG.md -w",
"start": "sudo npm run clean && npm run lint && sudo npm test",
"test": "nyc ava -v test/err/index.js test/pkg/index.js test/rc/index.js test/js/**/index.js"
},
"version": "1.2.0"
}