Skip to content

Instantly share code, notes, and snippets.

@jrop
Last active November 21, 2017 19:32
Show Gist options
  • Save jrop/fac134266e3a4eaa99ef45a7ca34d6c4 to your computer and use it in GitHub Desktop.
Save jrop/fac134266e3a4eaa99ef45a7ca34d6c4 to your computer and use it in GitHub Desktop.
Electron/Backend webpack.config.js
//
// Bundles everything *except* dependencies/builtins
// npm install webpack-configify builtin-modules
//
const builder = require('webpack-configify').default
const builtins = require('builtin-modules')
const PROD = process.env.NODE_ENV == 'production'
const DEPS = Object.keys(require('./package').dependencies || {})
module.exports = builder()
.development(!PROD)
.production(PROD)
.src('src/index.ts', 'src/app.tsx')
.dest('lib')
.loader('.pug', 'pug-loader')
.loader(['.ts', '.tsx'], 'awesome-typescript-loader')
.loader('.styl', 'style-loader!css-loader!stylus-loader')
.merge({
target: 'node',
node: {
__dirname: false,
},
externals: (context, request, callback) => {
[request] = request.split('/')
if (DEPS.includes(request) || builtins.includes(request))
return callback(null, 'commonjs ' + request)
callback()
},
})
.build()
if (require.main == module) {
const {inspect} = require('util')
console.log(inspect(module.exports, null, null))
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment