显示导航

使用 Vue.js Grails 配置文件

本指南介绍 Grails 的 Vue.js 配置文件。

作者:Zachary Klein

Grails 版本 3.3.3

1 培训

Grails 培训 - 由创建和积极维护 Grails 框架的人员开发和交付!

2 入门

在本指南中,您将使用 Grails 的 Vue 配置文件 创建一个应用程序。此配置文件将生成一个多项目构建,包括一个 Grails 应用程序和一个 Vue.js 前端应用程序,后者可以访问 Grails 提供的 RESTful API。

此配置文件将生成两个应用程序,serverclientserver 将是一个使用 rest-api 配置文件构建的 Grails 3 应用程序,其中包括对创建域资源、Restful 控制器和 JSON 视图的支持。

client 是一个使用 Vue-CLI (使用 webpack 模板) 生成的独立 Vue.js 应用程序。client 应用程序包括使用 Vue-RouterUIV (Bootstrap) 库实施的完整 UI,并且配置为通过 REST 与 Grails 后端进行通信。client 项目还包括一个正在运行的测试套件(单元和端到端测试)以及用于构建和测试应用程序的脚本 - 请参阅 vue-cli 模板文档 以了解更多信息。

2.1 您需要

要完成本指南,您需要以下内容

  • 10 分钟或更短时间

  • 已安装 Grails 3.2.1 或更高版本

  • 已安装 JDK 1.7 或更高版本,且 JAVA_HOME 已适当配置

3 生成应用程序

要开始使用此配置文件,请在生成应用程序时指定此配置文件

$ grails create-app myApp --profile=vue

您还可以使用 Application Forge 生成您的项目,可以从 Web 界面生成,也可以使用以下 curl 命令生成

curl -O start.grails.org/myApp.zip -d version=3.3.3 -d profile=vue

查看目录结构 - 您将看到一个典型的 Gradle 多项目构建,其中包含单独的客户端和服务器项目。

drwxr-xr-x  9 zak  staff   306 Nov  1 13:15 client
drwxr-xr-x  3 zak  staff   102 Nov  1 13:10 gradle
-rwxr--r--  1 zak  staff  4971 Nov  1 13:10 gradlew
-rwxr--r--  1 zak  staff  2314 Nov  1 13:10 gradlew.bat
drwxr-xr-x  8 zak  staff   272 Nov  1 13:12 server
-rw-r--r--  1 zak  staff    26 Nov  1 13:10 settings.gradle

server 项目是我们的 Grails 应用程序。该配置文件将使用 rest-api 配置文件生成 Grails 应用程序,该配置文件支持将域类创建为 restful 资源,默认启用 CORS,以及 JSON 和标记视图 。

client 是我们的 Vue 应用程序。

-rw-r--r--   1 zak  staff  44412 Nov  1 13:10 README.md
-rw-r--r--   1 zak  staff    669 Nov  1 13:10 build.gradle
-rw-r--r--   1 zak  staff    404 Nov  1 13:10 package.json
drwxr-xr-x   4 zak  staff    136 Nov  1 13:10 public
drwxr-xr-x  10 zak  staff    340 Nov  1 13:10 src

client 项目结构(除了特定于配置文件的 build.gradle 之外)都得益于 Vue-CLI 的 webpack 模板,并包含一个非常好的 README 文件。简而言之,src/ 目录是放置 Vue 源代码的位置,子目录包含 /components/assetsconfig

static 目录用于公共资源,希望可以在 Vue 应用程序中使用这些资源,而不会被 webpack 捆绑。还有一个根目录 index.html 文件,该文件用于生成 Vue 应用程序的主页。同样,请参阅 Vue-CLI 模板文档 了解更多信息。

如果您编辑文件 config/dev.env.js,将看到该配置文件已经向模板默认值添加了一个其他配置属性

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')

module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  SERVER_URL: '"http://localhost:8080"' (1)
})
1 SERVER_URL 指向 server Grails 应用程序的默认地址,并用作 Vue 应用程序中 REST 调用 的基本 URL。

您可以更改现有的配置属性或向此文件中添加新的属性; 它们将适用于“开发”环境(请注意,client 环境基于 client/package.json 中的脚本,并且与 Grails 的环境无关)。

4 运行应用程序

此配置文件还定义了一组自定义的 Gradle 任务,包括用来启动客户端应用程序的 bootRun 任务。您可以分别启动服务器和客户端应用程序

./gradlew server:bootRun

这将启动 Grails 应用程序,其在 http://localhost:8080 中可用。

在另一个终端中
./gradlew client:start

这将为 Vue 应用程序启动开发服务器,该服务器在 http://localhost:3000 中可用。

客户端 build.gradle 文件还包括一个 bootRun(为与 server 项目保持一致),这意味着您可以利用 Gradle 的并行执行,使用一个命令来运行客户端和服务器应用程序

./gradlew bootRun -parallel

还有更多的几个 client 任务“包装”了 package.json 中的 npm 脚本,用于构建和测试 Vue 应用程序。如果您已经安装了 npm,可以使用 Gradle 包装器运行它们,也可以直接运行脚本。

$ ./gradlew client:test
$ ./gradlew client:build
从客户端目录
$ npm test
$ npm run build

再次请参阅 模板文档,了解更多关于如何利用这些脚本以及由 Vue-CLI 提供的其他功能的信息。

别忘了查看 Grails Vue Profile 文档以了解更多信息。

5 关于 Grails 的帮助

Object Computing, Inc. (OCI) 赞助了本指南的创建。提供各种咨询和支持服务。

OCI 是 Grails 的所在地

认识团队