proton-native/examples/Calculator/webpack.config.js
Gustav Hansen b5ca0f7f86
V2 (#230)
* Add initial test structure and some tests for Window

* Start on rewriting registerComponent

* Add View support

* Add flexbox support, still need to test more

* Add styling and better props management

* Add nested text support

* Fix text measurement and qt hogging layout styles

* Font size must be in px, so convert if it isn't

* Add stylesheet

* Various changes, start adding tests

* Try out travis CI

* Remove xwd package

* Install qt5

* Install correct moc

* Add g++ 5

* Add xwd and imagemagick

* Yoga layout doesn't support v12 right now

* Add touchablewithoutfeedback

* Add opacity. Need to investigate seg fault

* Fix build errors, unsupport trusty

* Force xenial version

* Add touchablehighlight. Start button

* Add support for image require

* Start on image

* Add image resizing and TextInput

* Fix button view

* Quit loop when all windows closed

* Fix require not working with jest

* Fix quit deleting still in use pointers

* Disable caching

* Depend on stable node-qt-napi

* Copy docs, start examples

* Many bug fixes, get cat example to work

* Fix percent issue and start more documentation

* Start docs

* Finish docs

* Fix App appendChild with comments

* Abstract QT bindings

* Add calculator example; try to get devtools working

* Update react-devtools

* Add hot reloading support

* Add hot reloading to examples, fix reloading bugs

* Update documentation on v2

* Add more examples to v2 changes

* Change readme for v2

* Remove packaging until it works

* Add prepack instead

* Use node-qt-napi up

* 2.0.1

* Convert everything to typescript

* Add note on TS

* Update readme with new images

* Add comparison to others in docs

* Add packaging instructions

* Fix windows packaging

* Create FUNDING.yml

* Update v2_changes.md

* Create LICENSE

* Add wx backend option

* Add more wx components

* Add wx backend notes

* Add note on mac wxwidgets libuv bug

* Add note on Macs with libuv bug

* Use npx by default

* Bump version for wx backend

* V2 small code improvements (#240)

* slightly improved import

* better type defs

* merged append and insert as they pretty same

* Run prettier

* Add issue templates (#241)

* About page typo (#216)

* Update quickstart.md (#223)

* Update README.md (#229)

* Create FUNDING.yml

* Add issue templates

* Update README.md

Co-authored-by: Yevhen Hraivoronskyi <evhenious@gmail.com>
2020-01-19 06:55:30 -08:00

84 lines
2.2 KiB
JavaScript

const path = require('path');
const webpack = require('webpack');
const nodeExternals = require('webpack-node-externals');
const spawn = require('child_process').spawn;
module.exports = (env, argv) => {
const config = {
mode: 'production',
entry: ['./index.js'],
target: 'node',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'index.out.js',
},
node: {
__dirname: false,
__filename: false,
},
module: {
rules: [
{
test: /\.(j|t)sx?$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: { cacheDirectory: true, cacheCompression: false },
},
},
{
test: /\.(png|jpe?g|gif|svg|bmp)$/i,
use: [{ loader: 'file-loader' }],
},
{
test: /\.node/i,
use: [{ loader: 'node-loader' }, { loader: 'file-loader' }],
},
],
},
plugins: [
{
apply: compiler => {
let instance = null;
compiler.hooks.afterEmit.tap('AfterEmitPlugin', compilation => {
if (instance) {
return;
}
instance = spawn('npm', ['run', 'webpackRun']);
instance.stdout.on('data', function(data) {
console.log(data.toString());
});
instance.stderr.on('data', function(data) {
console.log(data.toString());
});
instance.on('exit', function(code) {
console.log('child process exited with code ' + code.toString());
process.exit(code);
});
});
},
},
],
resolve: {
extensions: ['.tsx', '.ts', '.js', '.jsx', '.json'],
},
externals: [
nodeExternals({
whitelist: ['webpack/hot/dev-server', 'webpack/hot/poll?100'],
}),
],
};
if (argv.mode === 'development') {
config.mode = 'development';
config.plugins.push(new webpack.HotModuleReplacementPlugin());
config.devtool = 'source-map';
config.watch = true;
config.stats = 'errors-only';
config.entry.unshift('webpack/hot/poll?100');
}
return config;
};