Vite + Maven + Spring Boot 组合编译

6

假设项目目录结构如下:

/project/
  /backend/ # 后端目录
    /pom.xml
    /src/
      /main/
        /resources/
          /static/ # 后端静态资源目录
  /frontend/ # 前端目录
    /package.json
    /vite.config.js

vite.config.jsdefineConfig 中新增如下项:

build: {
  outDir: '../backend/src/main/resources/static',
  emptyOutDir: true,
},

如果将 outDir 设为前端根目录之外的目录, 打包前将默认不会清空输出目录. 此时将 emptyOutDir 设为 true 即可

package.json 的 script 中增加如下项:

{
  ...
  "script": {
    ...
    "aio": "chcp 65001 && npm run build && cd ../backend && call mvn clean package"
  }
}

chcp 是为了减少乱码发生的可能性. 如果你的项目没用 unicode 编码 (那得是多邪恶的项目🤣🤜😈) 那就删掉这个

做完之后, 需要编译打包整个项目的时候直接在 frontend 目录执行 npm run aio 就行了, 打包之后的内容会输出到 backend/target 下.

更多的, 如果你想调整 Maven 的打包输出目录那就在 pom.xml 里加上如下内容:

...
<build>
  ...
  <directory>../anything-u-want</directory>
</build>