@lipemat/js-boilerplate
Version:
Dependencies and scripts for a no config JavaScript app
40 lines (34 loc) • 1.23 kB
text/typescript
process.env.BABEL_ENV = 'development';
process.env.NODE_ENV = 'development';
import webpack from 'webpack';
import {getPackageConfig} from '@lipemat/js-boilerplate-shared/helpers/package-config.js';
import {unlinkSync, writeFile} from 'fs';
import WebpackDevServer from 'webpack-dev-server';
import {getConfig} from '../helpers/config.js';
import path from 'path';
const webpackConfig = await getConfig( 'webpack.dev.js' );
const devServerConfig = await getConfig( 'dev-server.config.js' );
const compiler = webpack( webpackConfig );
if ( null === compiler ) {
throw new Error( 'Failed to create the webpack compiler.' );
}
const server = new WebpackDevServer( devServerConfig, compiler );
/**
* Create a `.running` file within the `dist` which only
* exists if this script is running.
*/
writeFile( path.resolve( getPackageConfig().workingDirectory, 'dist/.running' ), new Date().toLocaleString() + '\n' + 'Generated by @lipemat/js-boilerplate.', err => {
if ( err ) {
throw err;
}
process.on( 'exit', () => {
unlinkSync( path.resolve( getPackageConfig().workingDirectory, 'dist/.running' ) );
} );
} );
( async() => {
try {
await server.start();
} catch ( err ) {
return console.error( err );
}
} )();