Ensure asset directory exists (#194)

* Ensure asset directory exists

Creating a static build would fail (Error: ENOENT: no such file or directory) if it encountered an asset in a subdirectory.
Use mkdir to ensure the path exists, before writing the file.

For example, referencing fonts would fail:
```
@font-face {
  font-family: 'vaud';
  src: url('../fonts/vauddisplaybold-webfont.eot');
  src:
    url('../fonts/vauddisplaybold-webfont.eot?#iefix') format('embedded-opentype'),
    url('../fonts/vauddisplaybold-webfont.woff') format('woff'),
    url('../fonts/vauddisplaybold-webfont.ttf') format('truetype'),
    url('../fonts/vauddisplaybold-webfont.svg#vaud_displayregular') format('svg');
  font-weight: 700;
  font-style: normal;
}
```

* Make ESlint happy
This commit is contained in:
Daniel Schmidt 2016-05-12 15:53:42 +02:00 committed by Arunoda Susiripala
parent f6034db9e1
commit 1d286102c1

View File

@ -66,6 +66,9 @@ webpack(config).compile(function (err, stats) {
const source = asset._value;
const dstPath = path.resolve(outputDir, `static/${filename}`);
// Ensure the asset directory exists
shelljs.mkdir('-p', path.parse(dstPath).dir);
fs.writeFileSync(dstPath, source);
// We need to copy the manager bundle distributed via the React Storybook