/** * Builds the DLL for development electron renderer process */ import webpack from "webpack"; import path from "path"; import { merge } from "webpack-merge"; import baseConfig from "./webpack.config.base"; import webpackPaths from "./webpack.paths"; import { dependencies } from "../../package.json"; import checkNodeEnv from "../scripts/check-node-env"; checkNodeEnv("development"); const dist = webpackPaths.dllPath; const configuration: webpack.Configuration = { context: webpackPaths.rootPath, devtool: "eval", mode: "development", target: "electron-renderer", externals: ["fsevents", "crypto-browserify"], /** * Use `module` from `webpack.config.renderer.dev.js` */ module: require("./webpack.config.renderer.dev").default.module, entry: { renderer: Object.keys(dependencies || {}), }, output: { path: dist, filename: "[name].dev.dll.js", library: { name: "renderer", type: "var", }, }, plugins: [ new webpack.DllPlugin({ path: path.join(dist, "[name].json"), name: "[name]", }), /** * Create global constants which can be configured at compile time. * * Useful for allowing different behaviour between development builds and * release builds * * NODE_ENV should be production so that modules do not perform certain * development checks */ new webpack.EnvironmentPlugin({ NODE_ENV: "development", }), new webpack.LoaderOptionsPlugin({ debug: true, options: { context: webpackPaths.srcPath, output: { path: webpackPaths.dllPath, }, }, }), ], }; export default merge(baseConfig, configuration);