| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- const fs = require('fs')
- const path = require('path')
- const zlib = require('zlib')
- const rollup = require('rollup')
- const uglify = require('uglify-js')
- if (!fs.existsSync('dist')) {
- fs.mkdirSync('dist')
- }
- // Update main file
- const version = process.env.VERSION || require('../package.json').version
- const main = fs
- .readFileSync('src/core/index.js', 'utf-8')
- .replace(/Vue\.version = '[^']+'/, "Vue.version = '" + version + "'")
- fs.writeFileSync('src/core/index.js', main)
- let builds = require('./config').getAllBuilds()
- // filter builds via command line arg
- if (process.argv[2]) {
- const filters = process.argv[2].split(',')
- builds = builds.filter(b => {
- return filters.some(f => b.dest.indexOf(f) > -1)
- })
- }
- build(builds)
- function build (builds) {
- let built = 0
- const total = builds.length
- const next = () => {
- buildEntry(builds[built]).then(() => {
- built++
- if (built < total) {
- next()
- }
- }).catch(logError)
- }
- next()
- }
- function buildEntry (config) {
- const isProd = /min\.js$/.test(config.dest)
- return rollup.rollup(config).then(bundle => {
- const code = bundle.generate(config).code
- if (isProd) {
- var minified = (config.banner ? config.banner + '\n' : '') + uglify.minify(code, {
- fromString: true,
- output: {
- screw_ie8: true,
- ascii_only: true
- },
- compress: {
- pure_funcs: ['makeMap']
- }
- }).code
- return write(config.dest, minified).then(zip(config.dest))
- } else {
- return write(config.dest, code)
- }
- })
- }
- function write (dest, code) {
- return new Promise(function (resolve, reject) {
- fs.writeFile(dest, code, function (err) {
- if (err) return reject(err)
- console.log(blue(path.relative(process.cwd(), dest)) + ' ' + getSize(code))
- resolve()
- })
- })
- }
- function zip (file) {
- return function () {
- return new Promise(function (resolve, reject) {
- fs.readFile(file, function (err, buf) {
- if (err) return reject(err)
- zlib.gzip(buf, function (err, buf) {
- if (err) return reject(err)
- write(file + '.gz', buf).then(resolve)
- })
- })
- })
- }
- }
- function getSize (code) {
- return (code.length / 1024).toFixed(2) + 'kb'
- }
- function logError (e) {
- console.log(e)
- }
- function blue (str) {
- return '\x1b[1m\x1b[34m' + str + '\x1b[39m\x1b[22m'
- }
|