jalla 1.0.0-38 → 1.0.0-39
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/document.js +15 -11
- package/package.json +2 -2
package/lib/document.js
CHANGED
@@ -4,9 +4,9 @@ var documentify = require('documentify')
|
|
4
4
|
var { Readable } = require('stream')
|
5
5
|
var hyperstream = require('hstream')
|
6
6
|
var caniuse = require('caniuse-api')
|
7
|
+
var purgecss = require('purgecss')
|
7
8
|
var through = require('through2')
|
8
9
|
var resolve = require('resolve')
|
9
|
-
var dropcss = require('dropcss')
|
10
10
|
var jsesc = require('jsesc')
|
11
11
|
var path = require('path')
|
12
12
|
|
@@ -176,17 +176,17 @@ function prependCriticalCSS (getStyles) {
|
|
176
176
|
var self = this
|
177
177
|
|
178
178
|
getStyles().then(function (css) {
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
return
|
185
|
-
}
|
186
|
-
|
179
|
+
css = css.toString().replace(/\/\*#\s*sourceMappingURL=.+?\s*\*\//g, '')
|
180
|
+
return new purgecss.PurgeCSS().purge({
|
181
|
+
content: [{ raw: html, extension: 'html' }],
|
182
|
+
css: [{ raw: css }]
|
183
|
+
}).then(function (result) {
|
184
|
+
return result.reduce((acc, { css }) => acc + css, '')
|
185
|
+
})
|
186
|
+
}).then(function (css) {
|
187
187
|
var prepend = hyperstream({
|
188
188
|
head: {
|
189
|
-
_prependHtml: `<style>${
|
189
|
+
_prependHtml: `<style>${css}</style>`
|
190
190
|
}
|
191
191
|
})
|
192
192
|
var stream = new Readable()
|
@@ -196,7 +196,11 @@ function prependCriticalCSS (getStyles) {
|
|
196
196
|
stream.pipe(prepend).pipe(through(write, end))
|
197
197
|
stream.push(html)
|
198
198
|
stream.push(null)
|
199
|
-
}
|
199
|
+
}).catch(function () {
|
200
|
+
// fail silently and skip inline styles
|
201
|
+
self.push(html)
|
202
|
+
return cb()
|
203
|
+
})
|
200
204
|
|
201
205
|
// collect the resulting html with inlined CSS
|
202
206
|
// (str, str, fn) -> void
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "jalla",
|
3
|
-
"version": "1.0.0-
|
3
|
+
"version": "1.0.0-39",
|
4
4
|
"description": "A web compiler and server in one",
|
5
5
|
"main": "index.js",
|
6
6
|
"bin": "bin.js",
|
@@ -56,7 +56,6 @@
|
|
56
56
|
"convert-source-map": "^1.7.0",
|
57
57
|
"dedent": "^0.7.0",
|
58
58
|
"documentify": "^3.2.2",
|
59
|
-
"dropcss": "^1.0.16",
|
60
59
|
"envify": "^4.1.0",
|
61
60
|
"exorcist": "^2.0.0",
|
62
61
|
"get-port": "^5.1.1",
|
@@ -84,6 +83,7 @@
|
|
84
83
|
"posthtml-minifier": "^0.1.0",
|
85
84
|
"posthtmlify": "^0.2.0",
|
86
85
|
"pretty-bytes": "^5.2.0",
|
86
|
+
"purgecss": "^4.1.3",
|
87
87
|
"read-pkg-up": "^7.0.1",
|
88
88
|
"regenerator-runtime": "^0.13.5",
|
89
89
|
"resolve": "^1.15.1",
|