随着项目的需求越来越多,单界面应用可能已经无法满足现在的需求了。所以,这个时候需要进行根据模块来打包项目。根据公司的要求,我这边想到一个两个方法来进行模块化打包

方法一

每个项目的路由是个单独的独立文件,根据模块的选择进行路由的配置打包。这里我就不详细讲解了。有一些前端开发基础的人,基本上都可以很好的完美的理解到重点

根据模块进行路由配置打包

方法二

主要是结合了vue-cli的pages多界面应用与cross-env的相互结合来进行设置打包

npm install --save-dev cross-env

文件目录

新建文件config.js

module.exports =  {
    oneProject: {
        pages: {
            index: {
                entry: `src/oneProject/main.js`,
                filename: 'index.html',
                template: 'public/index.html'
            }
        },
        devServer: {
            port: 80
        }
    },
    twoProject: {
        pages: {
            index: {
                entry: `src/twoProject/main.js`,
                filename: 'index.html',
                template: 'public/index.html'
            }
        },
        devServer: {
            port: 81
        }
    },
    home: {
        pages: {
            index: {
                entry: `src/home/main.js`,
                filename: 'index.html',
                template: 'public/index.html'
            }
        },
        devServer: {
            port: 82
        }
    }
}

vue.config.js配置

let projectName = process.env.PROJECT_NAME
console.log(projectName)

const config =  require('./config.js')

module.exports = {
  // 根据当前执行的指令引用对应的模块
  ...config[projectName],
  // 根目录设置
  publicPath: "./", 
  // 输出文件目录
  outputDir: "dist/" + projectName + "/"
};

使用cross-env在pageage.json进行设置

"scripts": {
    "dev:home": "cross-env PROJECT_NAME=home vue-cli-service serve",
    "dev:oneProject": "cross-env PROJECT_NAME=oneProject vue-cli-service serve",
    "dev:twoProject": "cross-env PROJECT_NAME=twoProject vue-cli-service serve",
    "build:home": "cross-env PROJECT_NAME=home vue-cli-service build",
    "build:oneProject": "cross-env PROJECT_NAME=oneProject vue-cli-service build",
    "build:twoProject": "cross-env PROJECT_NAME=twoProject vue-cli-service build",
    "lint": "vue-cli-service lint"
  },

打包之后的文件

展示效果


来源链接:https://www.jianshu.com/p/475a76542582
 

Logo

前往低代码交流专区

更多推荐