Skip to content
This repository was archived by the owner on Jan 18, 2022. It is now read-only.

Commit acedc32

Browse files
thghznck
authored andcommitted
Write css async
Update console output to be more like webpack
1 parent c4ce9a0 commit acedc32

File tree

4 files changed

+53
-13
lines changed

4 files changed

+53
-13
lines changed

config/build.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ fs.writeFileSync('src/index.js', main);
1919
// and used by bundlers like Webpack and Browserify.
2020
rollup.rollup({
2121
entry: 'src/index.js',
22+
onwarn: function () {},
2223
plugins: [
2324
buble()
2425
]
@@ -35,20 +36,22 @@ function write(dest, code) {
3536
return new Promise(function (resolve, reject) {
3637
fs.writeFile(dest, code, function (err) {
3738
if (err) return reject(err)
38-
console.log(blue(dest) + ' ' + getSize(code))
39+
console.log('Rolled', green(dest), getSize(code.length))
3940
resolve()
4041
})
4142
})
4243
}
4344

44-
function getSize(code) {
45-
return (code.length / 1024).toFixed(2) + 'kb'
45+
function getSize (bytes) {
46+
bytes /= 1024
47+
return bytes < 1000 ? bytes.toPrecision(3) + ' kB' : (bytes / 1024).toPrecision(3) + ' MB'
4648
}
4749

4850
function logError(e) {
4951
console.log(e)
5052
}
5153

52-
function blue(str) {
53-
return '\x1b[1m\x1b[34m' + str + '\x1b[39m\x1b[22m'
54+
function green (str) {
55+
return '\u001b[1m\u001b[32m' + str + '\u001b[39m\u001b[22m'
5456
}
57+

dist/rollup-plugin-vue.common.js

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
99

10-
var humanSize = _interopDefault(require('human-size'));
1110
var rollupPluginutils = require('rollup-pluginutils');
1211
var fs = require('fs');
1312
var deIndent = _interopDefault(require('de-indent'));
@@ -172,6 +171,9 @@ function vue (options) {
172171
return ref.js
173172
},
174173
ongenerate: function ongenerate (opts) {
174+
if (options.css === false) {
175+
return
176+
}
175177

176178
// Combine all stylesheets
177179
var css = ''
@@ -193,10 +195,27 @@ function vue (options) {
193195
options.css = dest + '.css'
194196
}
195197

196-
console.log('Writing', humanSize(css.length), 'to', options.css)
197-
fs.writeFileSync(options.css, css)
198+
fs.writeFile(options.css, css, function (err) {
199+
if (err) {
200+
throw err
201+
}
202+
emitted(options.css, css.length)
203+
})
198204
}
199205
}
200206
}
201207

208+
function emitted (text, bytes) {
209+
console.log(green(text), getSize(bytes))
210+
}
211+
212+
function green (text) {
213+
return '\u001b[1m\u001b[32m' + text + '\u001b[39m\u001b[22m'
214+
}
215+
216+
function getSize (bytes) {
217+
bytes /= 1024
218+
return bytes < 1000 ? bytes.toPrecision(3) + ' kB' : (bytes / 1024).toPrecision(3) + ' MB'
219+
}
220+
202221
module.exports = vue;

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
"dependencies": {
2727
"de-indent": "latest",
2828
"html-minifier": "latest",
29-
"human-size": "^1.1.0",
3029
"parse5": "latest",
3130
"rollup-pluginutils": "latest",
3231
"vue-template-validator": "latest"

src/index.js

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import humanSize from 'human-size'
21
import {createFilter} from 'rollup-pluginutils'
3-
import {writeFileSync} from 'fs'
2+
import {writeFile} from 'fs'
43

54
import vueTransform from './vueTransform'
65

@@ -29,6 +28,9 @@ export default function vue (options = {}) {
2928
return ref.js
3029
},
3130
ongenerate (opts) {
31+
if (options.css === false) {
32+
return
33+
}
3234

3335
// Combine all stylesheets
3436
var css = ''
@@ -50,8 +52,25 @@ export default function vue (options = {}) {
5052
options.css = dest + '.css'
5153
}
5254

53-
console.log('Writing', humanSize(css.length), 'to', options.css)
54-
writeFileSync(options.css, css)
55+
writeFile(options.css, css, function (err) {
56+
if (err) {
57+
throw err
58+
}
59+
emitted(options.css, css.length)
60+
})
5561
}
5662
}
5763
}
64+
65+
function emitted (text, bytes) {
66+
console.log(green(text), getSize(bytes))
67+
}
68+
69+
function green (text) {
70+
return '\u001b[1m\u001b[32m' + text + '\u001b[39m\u001b[22m'
71+
}
72+
73+
function getSize (bytes) {
74+
bytes /= 1024
75+
return bytes < 1000 ? bytes.toPrecision(3) + ' kB' : (bytes / 1024).toPrecision(3) + ' MB'
76+
}

0 commit comments

Comments
 (0)