123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- const path = require('path')
- const webpack = require('webpack')
- const buildDate = JSON.stringify(new Date().toLocaleString())
- // const CompressionWebpackPlugin = require('compression-webpack-plugin')
- // const JavaScriptObfuscator = require('webpack-obfuscator')
- // const productionGzipExtensions = ['html', 'js', 'css']
- function resolve (dir) {
- return path.join(__dirname, dir)
- }
- // vue.config.js
- const vueConfig = {
- pluginOptions: {
- electronBuilder: {
- nodeIntegration: true,
- //生成的生产环境构建文件的目录
- // outputDir: 'jg-electron-app',
- nodeModulesPath: ['./node_modules'],
- // outputDir: 'electron_build',
- preload: { preload: 'src/preload.js' },
- // "store” | “normal” | "maximum". - For testing builds, use 'store' to reduce build time significantly.
- // compression: 'store',
- // removePackageScripts: true,
- builderOptions: {
- electronDownload: {
- mirror: 'https://npm.taobao.org/mirrors/electron/'
- },
- win: {
- icon: './src/assets/shortcut.ico',
- publisherName: 'lxp',
- target: [
- 'nsis'
- ]
- },
- linux: {
- icon: './src/assets/logo.ico',
- category: 'Utility',
- target: [
- 'AppImage'
- ]
- },
- mac: {
- icon: './src/assets/logo.ico',
- type: 'development',
- category: 'public.app-category.developer-tools',
- target: [
- 'dmg'
- ]
- },
- nsis: {
- include: './installer.nsh',
- allowToChangeInstallationDirectory: true,
- oneClick: false,
- // 是否为开始菜单快捷方式和程序文件目录创建子菜单
- menuCategory: true,
- allowElevation: false,
- installerIcon: './src/assets/jgIcon.ico',
- uninstallerIcon: './src/assets/shortcut.ico',
- installerHeaderIcon: './src/assets/shortcut.ico',
- createDesktopShortcut: true,
- createStartMenuShortcut: true,
- deleteAppDataOnUninstall: true,
- // 将用于所有快捷方式的名称
- shortcutName: 'JG-ADC工业生产监测系统',
- },
- appId: 'com.lnjgkj',
- productName: 'JG-ADC工业生产监测系统',
- copyright: 'Copyright © 2022 辽宁津港科技技术部'
- },
- }
- },
- configureWebpack: {
- // webpack plugins
- plugins: [
- // Ignore all locale files of moment.js
- new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
- new webpack.DefinePlugin({
- APP_VERSION: `"${require('./package.json').version}"`,
- BUILD_DATE: buildDate
- }),
- // 为生产环境修改配置...
- //开启gzip压缩,优化首屏加载速度
- /*new CompressionWebpackPlugin({
- algorithm: 'gzip',
- test: new RegExp(
- '\\.(' + productionGzipExtensions.join('|') + ')$'
- ),
- threshold: 10240, // 只有大小大于该值的资源会被处理 10240
- minRatio: 0.8, // 只有压缩率小于这个值的资源才会被处理
- deleteOriginalAssets: false // 删除原文件
- }),*/
- // js代码混淆
- /*new JavaScriptObfuscator({
- // 采用中度混淆
- // // 压缩代码
- // compact: true,
- // // 是否启用控制流扁平化(降低1.5倍的运行速度)
- // controlFlowFlattening: true,
- // // 应用概率;在较大的代码库中,建议降低此值,因为大量的控制流转换可能会增加代码的大小并降低代码的速度。
- // controlFlowFlatteningThreshold: 0.75,
- // // 随机的死代码块(增加了混淆代码的大小)
- // deadCodeInjection: true,
- // // 死代码块的影响概率
- // deadCodeInjectionThreshold: 0.4,
- // // 此选项几乎不可能使用开发者工具的控制台选项卡
- // debugProtection: false,
- // // 如果选中,则会在“控制台”选项卡上使用间隔强制调试模式,从而更难使用“开发人员工具”的其他功能。
- // debugProtectionInterval: 0,
- // // 通过用空函数替换它们来禁用console.log,console.info,console.error和console.warn。这使得调试器的使用更加困难。
- // disableConsoleOutput: true,
- // // 标识符的混淆方式 hexadecimal(十六进制) mangled(短标识符)
- // identifierNamesGenerator: 'hexadecimal',
- // log: false,
- // // 是否启用全局变量和函数名称的混淆
- // renameGlobals: false,
- // // 通过固定和随机(在代码混淆时生成)的位置移动数组。这使得将删除的字符串的顺序与其原始位置相匹配变得更加困难。如果原始源代码不小,建议使用此选项,因为辅助函数可以引起注意。
- // rotateStringArray: true,
- // // 混淆后的代码,不能使用代码美化,同时需要配置 cpmpat:true;
- // selfDefending: true,
- // // 删除字符串文字并将它们放在一个特殊的数组中
- // stringArray: true,
- // stringArrayEncoding: ['base64'],
- // stringArrayThreshold: 0.75,
- // transformObjectKeys: true,
- // // 允许启用/禁用字符串转换为unicode转义序列。Unicode转义序列大大增加了代码大小,并且可以轻松地将字符串恢复为原始视图。建议仅对小型源代码启用此选项。
- // unicodeEscapeSequence: false
- }, []),*/
- ],
- //关闭性能提示
- performance: {
- hints: false,
- maxEntrypointSize: 5000000,
- maxAssetSize: 3000000
- },
- externals: {},
- },
- devServer: {
- // development server port 8000
- port: 8000,
- // If you want to turn on the proxy, please remove the mockjs /src/main.jsL11
- proxy: {
- '/api': {
- // target: 'http://192.168.1.130:5000',
- target: 'http://localhost:5000',
- // target: 'http://117.62.238.129:5000',
- // target: 'http://192.168.50.126:5000',
- // target: 'http://120.48.81.85:15002',
- pathRewrite: { '^/api': '' },
- secure: false,
- ws: false,
- changeOrigin: true
- }
- }
- },
- /* 通过 webpack-chain 维护webpack配置,这个库提供了一个 webpack 原始配置的上层抽象,
- 使其可以定义具名的 loader 规则和具名插件,并有机会在后期进入这些规则并对它们的选项进行修改。
- 通过链式操作,它允许我们更细粒度的控制其内部配置 */
- chainWebpack: config => {
- config.resolve.alias.set('@$', resolve('src'))
- },
- css: {
- loaderOptions: {
- less: {
- modifyVars: {
- 'border-radius-base': '2px'
- },
- javascriptEnabled: true
- }
- }
- },
- // babel-loader no-ignore node_modules/*
- transpileDependencies: [],
- runtimeCompiler: true,
- lintOnSave: false,
- //放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
- assetsDir: 'static',
- //生产环境关闭SourceMap,加速生产环境构建
- productionSourceMap: false,
- }
- module.exports = vueConfig
|