taro-s4s
Version:
Nerv-multi多端开发解决方案
34 lines (32 loc) • 786 B
JavaScript
const fs = require('fs')
const path = require('path')
const stylus = require('stylus')
module.exports = function compileStylus (content, file, config) {
return new Promise((resolve, reject) => {
if (!content && !fs.existsSync(file)) {
return resolve({
css: ''
})
}
if (!content) {
content = fs.readFileSync(file).toString()
}
const opath = path.parse(file)
config.paths = [opath.dir]
config.filename = opath.base
const instance = stylus(content, { filename: file })
for (const k in config) {
instance.set(k, config[k])
}
let imports = instance.deps()
instance.render((err, css) => {
if (err) {
return reject(err)
}
resolve({
css,
imports
})
})
})
}