vue多项目多模块打包

vue多项目多模块打包

vue-cli4 为例,实现多项目的分模块打包。多项目之间共享组件和依赖,运行、打包互不干扰。

在这里插入图片描述

一、安装

npm install -g @vue/cli
# OR
yarn global add @vue/cli

二、创建项目:

vue create my-project
# OR
vue ui

三、目录改造

所谓分模块打包,一个模块就是一个独立项目,各个模块可以配置成独立的文件。

首先,新增目录:modelstemplate,一个存放模块文件,一个存放模块模板。

分别在模块、模板的目录,创建两个项目(目录):beijingtianjin

models
 - beijing
 - tianjin
template
 - beijing
 - tianjin
  • src下的 App.vuemain.js 复制到项目目录
  • public下的 index.html 复制到模板目录

注意App.vue中的图片和组件的引用路径

四:配置改造

cross-env跨平台环境变量的工具,在默认创建好的项目里,新增这个依赖:

yarn add cross-env

每个项目都有开发/生产环境,需要新增4个脚本命令:

// package.json
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    +"dev:beijing": "cross-env MODEL_NAME=beijing vue-cli-service serve",
    +"build:beijing": "cross-env MODEL_NAME=beijing vue-cli-service build",
    +"dev:tianjin": "cross-env MODEL_NAME=tianjin vue-cli-service serve",
    +"build:tianjin": "cross-env MODEL_NAME=tianjin vue-cli-service build"
  },

基本配置:

// vue.config.js
module.exports = {

  outputDir: "dist/",         // 项目输出目录
  assetsDir: "static",        // 静态资源目录
  publicPath: "./",           // vue-cli3.3以上版本
  // baseUrl: "./",           // vue-cli3.3以下版本
  filenameHashing: false,     // 生产环境关闭hash
  productionSourceMap: false, // 生产环境关闭jsmap

  devServer: {}
};

到这一步,最好运行一次默认打包配置,表示新增的目录和文件没有影响默认配置

本例中引用了公共的静态资源和组件:
src/assets/logo.pngsrc/components/HelloWorld.vue

如果可以正常打包,接下来就是配置多模块,能想到多模块打包,传统配置必定很熟了,不再赘述,请看注释…

完整配置:

// vue.config.js
const path = require('path');

function resolve(dir) {
  return path.join(__dirname, dir);
}

const config = {
  beijing: {
    pages: {
      index: {
        title: "北京项目",
        filename: "index.html",
        entry: "models/beijing/main.js",
        template: "template/beijing/index.html"
      }
    },
    devServer: {}
  },
  tianjin: {
    pages: {
      index: {
        title: "天津项目",
        filename: "index.html",
        entry: "models/tianjin/main.js",
        template: "template/tianjin/index.html"
      }
    },
    devServer: {}
  },
};

let modelName = process.env.MODEL_NAME || "";
let outputDir = modelName ? `dist/${modelName}/` : "dist/";

module.exports = {
  ...config[modelName],

  outputDir: outputDir,       // 项目输出目录
  assetsDir: 'static',        // 静态资源目录
  publicPath: "./",           // vue-cli3.3以上版本
  // baseUrl: './',           // vue-cli3.3以下版本
  filenameHashing: false,     // 生产环境关闭hash
  productionSourceMap: false, // 生产环境关闭jsmap

  // 外部扩展
  configureWebpack: {
    externals: {
      vue: 'Vue',
      vuex: 'Vuex',
    }
  },

  // 设置别名
  chainWebpack: config => {
    config.resolve.alias
    .set('@', resolve('src'))
    .set('@img', resolve('public/static/img'));
  },

  devServer: {}
};

尽管模板设置在template目录,静态资源路径还是相对public目录

我这的java项目集成的是FreeMarker,复制对应的项目模板index.html后缀改成.ftl
每次前端打包对应的环境配置之后,把dist目录的文件同步到java项目的static目录

五、打包结果

北京项目:
在这里插入图片描述
在这里插入图片描述

天津项目:
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将Vue2项目打包并上线,可以按照以下详细流程进行操作: 1. 使用vue-cli创建Vue项目。可以使用以下命令创建一个新的Vue项目:`vue create 项目名称`。这将使用vue-cli提供的模板和配置初始化一个Vue项目。 2. 进入项目目录并安装vue服务端渲染插件vue-server-renderer。可以使用以下命令安装插件:`npm install vue-server-renderer`。 3. 在项目的public目录下创建index.temp.html文件。这个文件将作为在服务端渲染时生成的HTML页面的容器。可以在该文件中定义HTML的基本结构,例如DOCTYPE声明、head标签和body标签等。示例代码如下所示: ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>vue ssr</title> </head> <body> <!--vue-ssr-outlet--> </body> </html> ``` 4. 创建一个Node.js web服务器来托管Vue应用程序。你可以使用你喜欢的Node.js框架或工具,例如Express.js或Koa.js来创建一个服务器。在服务器的路由配置中,需要引入并使用vue-server-renderer插件来实现服务端渲染。 以上是将Vue2项目打包并上线的详细流程。希望对你有所帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue2-ssr从vue-cli搭建项目改造服务端渲染+打包上线部署](https://blog.csdn.net/m0_60845208/article/details/124247159)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值