node-qrcode-lite/build.js
2020-04-16 22:45:26 +01:00

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)