'use strict' process.env.BABEL_ENV = 'main' const path = require('path') const { dependencies } = require('../package.json') const webpack = require('webpack') const fs= require('fs') // 检测是否有用户配置文件,没有的话根据模板生成一个 const userConfigPath=path.resolve(__dirname,'../.user-config.js') if(!fs.existsSync(userConfigPath)){ fs.copyFileSync(path.resolve(__dirname,'../user-config.template.js'), userConfigPath) } let mainConfig = { entry: { main: path.join(__dirname, '../src/main/index.js') }, externals: [ ...Object.keys(dependencies || {}) ], module: { rules: [ { test: /\.node$/, use: 'node-loader' }, ] }, node: { __dirname: process.env.NODE_ENV !== 'production', __filename: process.env.NODE_ENV !== 'production' }, output: { filename: '[name].js', libraryTarget: 'commonjs2', path: path.join(__dirname, '../dist/electron') }, plugins: [ new webpack.NoEmitOnErrorsPlugin() ], resolve: { extensions: ['.js', '.json', '.node'] }, target: 'electron-main' } /** * Adjust mainConfig for development settings */ if (process.env.NODE_ENV !== 'production') { mainConfig.plugins.push( new webpack.DefinePlugin({ '__static': `"${path.join(__dirname, '../static').replace(/\\/g, '\\\\')}"` }) ) } /** * Adjust mainConfig for production settings */ if (process.env.NODE_ENV === 'production') { mainConfig.plugins.push( new webpack.DefinePlugin({ 'process.env.NODE_ENV': '"production"' }) ) } module.exports = mainConfig