Skip to content
This repository was archived by the owner on Jan 18, 2022. It is now read-only.

Commit 43a6f48

Browse files
committed
Ensure dest directory
Fixes #68
1 parent 116fa11 commit 43a6f48

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

src/style/index.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { writeFile } from 'fs'
1+
import { writeFile, mkdirSync as mkdir, existsSync as exists } from 'fs'
2+
import { dirname, isAbsolute, resolve as resolvePath } from 'path'
23
import compileCSS from './css'
34
import compileSCSS from './scss'
45
import compileLESS from './less'
@@ -9,7 +10,7 @@ const compilers = {
910
less: compileLESS
1011
}
1112

12-
export async function compile (style, options) {
13+
export async function compile(style, options) {
1314
let output
1415

1516
if (style.lang === 'css') {
@@ -21,6 +22,14 @@ export async function compile (style, options) {
2122
return output
2223
}
2324

25+
function ensureDirectory(directory) {
26+
if (!exists(directory)) {
27+
ensureDirectory(dirname(directory))
28+
29+
mkdir(directory)
30+
}
31+
}
32+
2433
export default function (files, options) {
2534
if (options.css === false) {
2635
return
@@ -50,13 +59,16 @@ export default function (files, options) {
5059
return
5160
}
5261

53-
const dest = options.css
62+
let dest = options.css
5463

5564
if (typeof dest !== 'string') {
5665
return
5766
}
5867

68+
dest = isAbsolute(dest) ? dest : resolvePath(process.cwd(), dest)
69+
console.log('OUTPUT:', dest)
5970
// Emit styles to file
71+
ensureDirectory(dirname(dest))
6072
writeFile(dest, css, (err) => {
6173
if (err) throw err
6274
})

0 commit comments

Comments
 (0)