52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
const childProcess = require('child_process')
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
|
|
require('colors')
|
|
|
|
function createFolder (folderPath) {
|
|
console.log('*'.green + ' creating folder: '.grey + folderPath.white)
|
|
|
|
fs.mkdirSync(folderPath, { recursive: true })
|
|
}
|
|
|
|
function bundle (inputFile, exportName, outputFile, onDone) {
|
|
console.log('*'.green + ' bundling: '.grey + inputFile.white + ' -> '.grey + outputFile.white)
|
|
|
|
const { status, stderr } = childProcess.spawnSync('node', [
|
|
'node_modules/.bin/browserify',
|
|
inputFile,
|
|
'-s', exportName,
|
|
'-d',
|
|
'-o', outputFile
|
|
])
|
|
|
|
if (status !== 0) {
|
|
console.error(stderr.toString())
|
|
process.exit(status)
|
|
}
|
|
}
|
|
|
|
function minify (inputFile, outputFile) {
|
|
console.log('*'.green + ' minifying: '.grey + inputFile.white + ' -> '.grey + outputFile.white)
|
|
|
|
const { status, stderr } = childProcess.spawnSync('node', [
|
|
'node_modules/.bin/uglifyjs',
|
|
'--compress', '--mangle',
|
|
'--output', outputFile,
|
|
'--source-map', `url='${path.basename(outputFile)}.map'`,
|
|
'--', inputFile
|
|
])
|
|
|
|
if (status !== 0) {
|
|
console.error(stderr.toString())
|
|
process.exit(status)
|
|
}
|
|
}
|
|
|
|
createFolder('./build')
|
|
bundle('lib/index.js', 'QRCode', 'build/qrcode.js')
|
|
bundle('helper/to-sjis.js', 'QRCode.toSJIS', 'build/qrcode.tosjis.js')
|
|
minify('build/qrcode.js', 'build/qrcode.min.js')
|
|
minify('build/qrcode.tosjis.js', 'build/qrcode.tosjis.min.js')
|
|
console.log('\nBuild complete =)\n'.green)
|