|
|
|
|
"use strict";
|
|
|
|
|
|
|
|
|
|
const babelify = require('babelify');
|
|
|
|
|
const icssify = require("icssify");
|
|
|
|
|
const prettyBytes = require("pretty-bytes");
|
|
|
|
|
|
|
|
|
|
const postcssPlugins = ["postcss-import", "postcss-strip-inline-comments", "postcss-nested", "postcss-simple-vars", "postcss-color-function", "autoprefixer"].map((plugin) => require(plugin)());
|
|
|
|
|
|
|
|
|
|
const browserifyConfig = {
|
|
|
|
|
transform: babelify.configure({presets: ["@babel/preset-env", "@babel/preset-react"]}),
|
|
|
|
|
plugin: [
|
|
|
|
|
[icssify, {
|
|
|
|
|
parser: require('postcss-scss'),
|
|
|
|
|
before: postcssPlugins,
|
|
|
|
|
mode: 'global'
|
|
|
|
|
}],
|
|
|
|
|
[require("css-extract"), { out: "public/bundle.css" }],
|
|
|
|
|
]
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
if (process.env.NODE_ENV == "development") {
|
|
|
|
|
const budo = require('budo');
|
|
|
|
|
budo('./src/index.js', {
|
|
|
|
|
live: true,
|
|
|
|
|
port: 8080,
|
|
|
|
|
browserify: browserifyConfig,
|
|
|
|
|
dir: "public",
|
|
|
|
|
css: "/public/bundle.css",
|
|
|
|
|
wg: "src/*",
|
|
|
|
|
serve: "bundle.js"
|
|
|
|
|
}).on('connect', function (ev) {
|
|
|
|
|
console.log('Server running on %s', ev.uri);
|
|
|
|
|
console.log('LiveReload running on port %s', ev.port);
|
|
|
|
|
}).on('update', function (buffer) {
|
|
|
|
|
console.log('bundle - %s', prettyBytes(buffer.length));
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
const browserify = require("browserify");
|
|
|
|
|
const fs = require("fs");
|
|
|
|
|
let b = browserify(browserifyConfig);
|
|
|
|
|
b.add('./src/index.js');
|
|
|
|
|
let output = fs.createWriteStream("./public/bundle.js");
|
|
|
|
|
b.bundle().pipe(output).on("finish", () => {
|
|
|
|
|
console.log("Finished bundle");
|
|
|
|
|
});
|
|
|
|
|
}
|