Skip to content

Commit 6fd14f1

Browse files
committed
CSS Next Support and Prefixing via postcss-preset-env #1
1 parent f7815ed commit 6fd14f1

File tree

6 files changed

+56
-1
lines changed

6 files changed

+56
-1
lines changed

lib/make-postcss.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1+
let path = require("path");
12
let postcss = require("postcss");
23
let atImport = require("postcss-import");
4+
let postcssPresetEnv = require("postcss-preset-env");
35
let assetURL = require("./asset-url");
4-
let { promisify } = require("faucet-pipeline-core/lib/util");
6+
let { repr, promisify } = require("faucet-pipeline-core/lib/util");
57
let readFile = promisify(require("fs").readFile);
68

79
module.exports = function(input, target, assetManager, sourcemaps, browsers, compact) {
@@ -17,6 +19,18 @@ module.exports = function(input, target, assetManager, sourcemaps, browsers, com
1719
);
1820
}
1921

22+
if(browsers && browsers.length > 0) {
23+
let filepath = path.relative(assetManager.referenceDir, input);
24+
console.error(`compiling CSS ${repr(filepath)} for ${browsers.join(", ")}`);
25+
plugins.push(postcssPresetEnv({
26+
stage: 2, // maybe a little too unstable?
27+
browsers: browsers,
28+
autoprefixer: {
29+
cascade: false // this disables weird indentation
30+
}
31+
}));
32+
}
33+
2034
let processor = postcss(plugins);
2135

2236
let options = {

test/run

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,4 +39,9 @@ begin "$root/test_static_integration"
3939
assert_identical "./dist/bundle.css" "./expected.css"
4040
end
4141

42+
begin "$root/test_cssnext"
43+
faucet
44+
assert_identical "./dist/bundle.css" "./expected.css"
45+
end
46+
4247
echo; echo "SUCCESS: all tests passed"

test/test_cssnext/.browserslistrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
IE 10

test/test_cssnext/expected.css

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
:root {
2+
--fontSize: 1rem;
3+
}
4+
5+
body {
6+
font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif;
7+
font-size: 1rem;
8+
font-size: var(--fontSize);
9+
-ms-user-select: none;
10+
user-select: none;
11+
}

test/test_cssnext/faucet.config.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
"use strict";
2+
let path = require("path");
3+
4+
module.exports = {
5+
css: [{
6+
source: "./src/index.css",
7+
target: "./dist/bundle.css"
8+
}],
9+
plugins: {
10+
css: {
11+
plugin: path.resolve("../.."),
12+
bucket: "styles"
13+
}
14+
}
15+
};

test/test_cssnext/src/index.css

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
:root {
2+
--fontSize: 1rem;
3+
}
4+
5+
body {
6+
font-family: system-ui;
7+
font-size: var(--fontSize);
8+
user-select: none;
9+
}

0 commit comments

Comments
 (0)