vue2项目 jeecg二开,node内存减少10%

113 阅读2分钟

1.更新

npm update @vue/cli-service webpack webpack-dev-server

yarn update vue vue-router vuex

2.vue.config.js

// 覆盖 devtool 配置(替代 source-map)
      config.devtool = 'cheap-module-source-map';
      // 关闭性能提示
      config.performance = {
        hints: false
      };
      
      
   // 关闭大型库的预编译(仅保留 your-small-module 的编译)
    config.module.rule('js').exclude.add(/node_modules\/(?!(@jeecg\/antd-online-mini|bin-code-editor|vxe-table|vxe-table-plugin-antd)\/).*/);

  1. package.json
 "vue/max-attributes-per-line": [
               "error",
               {
                   "singleline": {
                       "max": 1
                   },
                   "multiline": {
                       "max": 1
                   }
               }
           ],

ps:***************************************************************

deepseek 问题 针对 Vue 2 项目启动后 Node.js 内存占用过高(5GB)的问题,以下是系统化的优化步骤:


1. 升级依赖和工具

# 升级 Vue CLI 和 Webpack
npm update @vue/cli-service webpack webpack-dev-server
# 升级核心依赖
npm update vue vue-router vuex
  • 原因:新版本通常包含内存优化和性能改进

2. 优化 Webpack 配置(修改 vue.config.js

module.exports = {
  configureWebpack: {
    devtool: 'cheap-module-source-map', // 替代 source-map
    performance: {
      hints: false // 关闭性能提示
    }
  },
  chainWebpack: config => {
    // 关闭大型库的预编译
    config.module.rule('js').exclude.add(/node_modules\/(?!(your-small-module)\/).*/)
    
    // 禁用生产环境分析插件
    config.plugins.delete('prefetch')
    config.plugins.delete('preload')
  }
}

3. 优化 Babel 编译

// babel.config.js
module.exports = {
  presets: [
    ['@babel/preset-env', { 
      targets: { node: 'current' },
      useBuiltIns: 'usage',  // 按需引入 polyfill
      corejs: 3 
    }]
  ],
  plugins: [
    '@babel/plugin-transform-runtime' // 复用辅助函数
  ]
}
  • 关键操作
    1. .babel-loader 规则中添加 exclude: /node_modules/
    2. 删除不必要的 polyfill

4. 启用 Node.js 内存限制

修改 package.json

{
  "scripts": {
    "serve": "node --max-old-space-size=2048 node_modules/.bin/vue-cli-service serve"
  }
}
  • 将内存上限设为 2GB(根据机器配置调整)

5. 优化依赖加载

// vue.config.js
module.exports = {
  configureWebpack: {
    externals: process.env.NODE_ENV === 'development' ? {
      'vue': 'Vue',
      'vue-router': 'VueRouter',
      'vuex': 'Vuex'
    } : {}
  }
}
  • 效果:通过 CDN 引入大型库,减少编译负担

6. 分析内存使用

# 安装分析工具
npm install --save-dev source-map-explorer

# 生成构建报告
npx vue-cli-service build --report
npx source-map-explorer dist/js/*.js
  • 通过 webpack-bundle-analyzer 定位内存大户

7. 代码拆分优化

// 路由懒加载 (Vue Router)
const Home = () => import(/* webpackChunkName: "home" */ './views/Home.vue')

8. 升级开发工具

# 迁移到 Vite (Vue 2 兼容方案)
npm install vite vite-plugin-vue2 @vitejs/plugin-legacy -D

创建 vite.config.js

import { createVuePlugin } from 'vite-plugin-vue2'
import legacy from '@vitejs/plugin-legacy'

export default {
  plugins: [
    createVuePlugin(),
    legacy({ targets: ['defaults'] })
  ]
}
  • 优势:Vite 冷启动速度提升 10+ 倍,内存占用减少 50-70%

9. 系统级优化

# 调整系统限制 (Linux/Mac)
sudo sysctl -w vm.max_map_count=262144
ulimit -n 65536

10. 终极方案:项目升级

# 逐步迁移到 Vue 3
vue add vue-next

验证优化效果

# 查看进程内存
npm install -g node-process-hacker
nph top -m

或使用 Chrome DevTools 的 Memory 面板分析 Node 进程


优化预期效果

措施内存下降幅度实施难度
Webpack 配置优化10-20%
升级 Vite50-70%
路由懒加载15-30%
依赖外部化10-15%
Node 内存限制防止崩溃

建议从配置优化开始,逐步实施。对于大型项目,迁移到 Vite 通常能获得最显著的优化效果(参考案例:某电商项目从 4.2GB 降至 1.1GB)。