Skip to content

Commit 0ea5ddf

Browse files
committed
Add exercises
1 parent 958dc21 commit 0ea5ddf

File tree

5 files changed

+104
-5
lines changed

5 files changed

+104
-5
lines changed

index.js

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,18 @@ if (!global.Promise) { global.Promise = require('promise-polyfill'); }
55
var fs = require('fs');
66
var path = require('path');
77
var Cmify = require('./cmify');
8-
var Core = require('css-modules-loader-core');
98
var FileSystemLoader = require('./file-system-loader');
109
var assign = require('object-assign');
1110
var stringHash = require('string-hash');
1211
var ReadableStream = require('stream').Readable;
1312
var through = require('through2');
13+
var postcss = require('postcss')
14+
var scope = require('postcss-modules-scope')
15+
var localByDefault = require('postcss-modules-local-by-default')
16+
var extractImports = require('postcss-modules-extract-imports')
17+
var values = require('postcss-modules-values')
18+
var parser = require('postcss-modules-parser')
19+
var identity = require('lodash').identity
1420

1521
/*
1622
Custom `generateScopedName` function for `postcss-modules-scope`.
@@ -42,7 +48,6 @@ function generateLongName (name, filename) {
4248
Get the default plugins and apply options.
4349
*/
4450
function getDefaultPlugins (options) {
45-
var scope = Core.scope;
4651
var customNameFunc = options.generateScopedName;
4752
var defaultNameFunc = process.env.NODE_ENV === 'production' ?
4853
generateShortName :
@@ -51,10 +56,11 @@ function getDefaultPlugins (options) {
5156
scope.generateScopedName = customNameFunc || defaultNameFunc;
5257

5358
return [
54-
Core.values
55-
, Core.localByDefault
56-
, Core.extractImports
59+
values
60+
, localByDefault
61+
, extractImports
5762
, scope
63+
, parser
5864
];
5965
}
6066

package.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@
88
"debug": "^2.2.0",
99
"dependency-graph": "^0.4.1",
1010
"object-assign": "^3.0.0",
11+
"postcss": "^5.2.4",
12+
"postcss-modules-extract-imports": "^1.0.1",
13+
"postcss-modules-local-by-default": "^1.1.1",
14+
"postcss-modules-parser": "^1.1.0",
15+
"postcss-modules-scope": "^1.0.2",
16+
"postcss-modules-values": "^1.2.2",
1117
"promise-polyfill": "^2.1.0",
1218
"resolve": "^1.1.7",
1319
"string-hash": "^1.1.0",

playground/cm1.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.cm1_a {
2+
background: blue;
3+
}

playground/postcss.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
var postcss = require('postcss')
2+
var scope = require('postcss-modules-scope')
3+
var localByDefault = require('postcss-modules-local-by-default')
4+
var extractImports = require('postcss-modules-extract-imports')
5+
var values = require('postcss-modules-values')
6+
var parser = require('postcss-modules-parser')
7+
var identity = require('lodash').identity
8+
9+
var runner = postcss([scope])
10+
11+
function fetch(to, from) {
12+
console.log(to, from);
13+
}
14+
var results = runner.process(`:local(.continueButton) {
15+
color: green;
16+
}`, {from: 'aaa.css'}).then((res) => {
17+
console.log(res)
18+
console.log('============');
19+
console.log(res.css);
20+
}).catch((err) => {
21+
console.error(err);
22+
})

playground/postcss2.js

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
var postcss = require('postcss')
2+
var myp = postcss.plugin('myp', (opts) => {
3+
return (css) => {
4+
css.walkRules(function (rule) {
5+
console.log('@@@@@@@@@', rule);
6+
rule.walkDecls(function (decl, i) {
7+
console.log('##########', decl, i);
8+
})
9+
})
10+
}
11+
})
12+
13+
var psScope = require( 'postcss-modules-scope')
14+
var psLocal = require( 'postcss-modules-local-by-default')
15+
var psImports = require( 'postcss-modules-extract-imports')
16+
var psParser = require( 'postcss-modules-parser')
17+
18+
var runner = postcss()
19+
function fetch(to, from,a,b,c) {
20+
console.log('||||||||||||||||||||||||||||||||', to, from,a,b,c);
21+
return this.process(require('fs').readFileSync(to), to).root.tokens
22+
}
23+
runner
24+
.use(myp)
25+
.use(psLocal)
26+
.use(psImports)
27+
.use(psScope)
28+
.use(new psParser({fetch: fetch.bind(runner)}))
29+
30+
// var runner = postcss([
31+
// myp,
32+
// psLocal,
33+
// psImports,
34+
// psScope,
35+
// psParser({fetch: function(to, from,a,b,c) {
36+
// console.log('||||||||||||||||||||||||||||||||', to, from,a,b,c);
37+
// console.log(this);
38+
// return runner.process(require('fs').readFileSync(to), to).root.tokens
39+
// }.bind(runner)})
40+
// ])
41+
42+
var results = runner
43+
.process(`
44+
.className {
45+
color: green;
46+
background: red;
47+
}
48+
49+
.otherClassName {
50+
composes: className;
51+
color: yellow;
52+
}
53+
54+
.otherClassName2 {
55+
composes: cm1_a from './cm1.css';
56+
color: yellow;
57+
}`, {from: 'aaa.css'})
58+
.then(res => {
59+
console.log('=====================result==================');
60+
console.log(res.root.tokens);
61+
console.log(res.css);
62+
})

0 commit comments

Comments
 (0)