-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbuild.js
38 lines (35 loc) · 1.04 KB
/
build.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const LIB_NAME = 'MapStateVModel'
const fs = require('fs')
const browserify = require('browserify')
const babelify = require('babelify')
const uglify = require('uglify-js')
const moment = require('moment')
const pkg = require('./package.json')
// banner
const makeBanner = () => {
return [
'/*!',
`${LIB_NAME} v${pkg.version}`,
`${pkg.author}`,
`${moment().format('YYYY-MM-DD HH:mm:ss')}\n */\n`,
].join('\n * ')
}
// uglify
const writeStream = fs.createWriteStream('./dist/index.js')
writeStream.on('finish', () => fs.writeFileSync('./dist/index.min.js', makeBanner() + uglify.minify(fs.readFileSync('./dist/index.js').toString()).code))
// transform code
browserify({ debug: true, standalone: LIB_NAME })
.transform(babelify, {
sourceType: 'module',
presets: [
["env", {
"targets": {
"browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
}
}]
]
})
.require('./src/index.js', { entry: true })
.bundle()
.on('error', err => console.log('Error: ' + err.message))
.pipe(writeStream)