48 lines
1.5 KiB
Plaintext
48 lines
1.5 KiB
Plaintext
|
import fs from 'fs'
|
||
|
import path from 'path'
|
||
|
import { resolveDefaultConfigPath } from '../../../util/resolveConfigPath'
|
||
|
import { createProcessor } from './plugin'
|
||
|
|
||
|
export async function build(args) {
|
||
|
let input = args['--input']
|
||
|
let shouldWatch = args['--watch']
|
||
|
|
||
|
// TODO: Deprecate this in future versions
|
||
|
if (!input && args['_'][1]) {
|
||
|
console.error('[deprecation] Running tailwindcss without -i, please provide an input file.')
|
||
|
input = args['--input'] = args['_'][1]
|
||
|
}
|
||
|
|
||
|
if (input && input !== '-' && !fs.existsSync((input = path.resolve(input)))) {
|
||
|
console.error(`Specified input file ${args['--input']} does not exist.`)
|
||
|
process.exit(9)
|
||
|
}
|
||
|
|
||
|
if (args['--config'] && !fs.existsSync((args['--config'] = path.resolve(args['--config'])))) {
|
||
|
console.error(`Specified config file ${args['--config']} does not exist.`)
|
||
|
process.exit(9)
|
||
|
}
|
||
|
|
||
|
// TODO: Reference the @config path here if exists
|
||
|
let configPath = args['--config'] ? args['--config'] : resolveDefaultConfigPath()
|
||
|
|
||
|
let processor = await createProcessor(args, configPath)
|
||
|
|
||
|
if (shouldWatch) {
|
||
|
// Abort the watcher if stdin is closed to avoid zombie processes
|
||
|
// You can disable this behavior with --watch=always
|
||
|
if (args['--watch'] !== 'always') {
|
||
|
process.stdin.on('end', () => process.exit(0))
|
||
|
}
|
||
|
|
||
|
process.stdin.resume()
|
||
|
|
||
|
await processor.watch()
|
||
|
} else {
|
||
|
await processor.build().catch((e) => {
|
||
|
console.error(e)
|
||
|
process.exit(1)
|
||
|
})
|
||
|
}
|
||
|
}
|