在没有节点/npm 的情况下构建 SPA 前端

Posted

技术标签:

【中文标题】在没有节点/npm 的情况下构建 SPA 前端【英文标题】:Building SPA frontend without node/npm 【发布时间】:2018-11-04 19:06:31 【问题描述】:

我是一名后端 Java 开发人员(Spring Boot),目前我对构建单页应用程序很感兴趣。

我喜欢 SPA 框架(主要是 Vue)的地方: 模型绑定(保存样板代码) 组件和模板(在多个文件中分离代码总是好的,但我不喜欢单个文件组件,因为我觉得它们混合了视图和逻辑) 路由器

但是,除非您使用 Node,否则集成似乎很差 我不喜欢的: Node(我用 Java 开发后端,所以我不想安装 node 作为 NPM 的先决条件) NPM(我在Maven/Gradle中已经有了依赖管理,其实我没那么在意,就是不想单独安装和管理)

我明白为什么需要 Node、Npm、Webpack 之类的东西,只是我已经让 Java/Spring/Eclipse 为我完成了所有这些工作。我不希望有两个基本上独立的构建过程。

TLDR:我喜欢现代前端的方向和架构,我只是不想处理使用的工具。

具体问题:如何使用 Spring Boot、Gradle/Maven 和 Vue.js 开发现代 SPA,而不必安装 Node/Npm/Vue cli 等。如果有的话,最好的工具是什么?

谢谢。

【问题讨论】:

您可以使用 exec-maven-plugin 之类的插件将构建过程与 maven 统一起来。但这适用于构建过程。如果你想轻松开发一个 vue.js 应用程序,使用带有 node 的 vue-cli 要容易得多。如前所述,有多种方法可以使用 maven 来构建您的 js 内容,甚至将其打包在 Spring Boot 中。让我知道您是否需要帮助,而不是完全排除 Node 【参考方案1】:

您可以使用托管自 here 的 maven 前端插件。

它是一个 maven 插件,它利用下载 nodejs、webpack、gulp、grunt 并在您的代码库上运行它。

您将能够运行 maven build 并且 nodejs 将自动下载。它还将运行您的前端构建,并且在生成的 jar 中您将只有必要的缩小文件。

但是,您必须注意,如果您想调试您的前端应用程序,最好安装这些东西并能够在本地运行应用程序而无需压缩 html 和 js 文件。

如果您不想下载工具,可以使用本插件作者提供的helper scripts 来使用本插件下载的工具。

【讨论】:

使用 maven 前端插件,每次更改后我是否必须重建前端,还是自动完成?我相信 angular2(使用 cli)会不断地重建它。至于调试,我在浏览器中调试完全没问题... 如果你想用编译好的前端构建jar,你将不得不重建整个maven项目。但是,出于开发目的,您可能希望在一个端口(例如 8080)上运行后端应用程序,然后使用帮助脚本运行本地节点服务器(在另一个端口上)并在开发前端部分时享受实时重新加载。 如果我回答了您的问题,请考虑支持我的回答并标记它。如果没有,请提供更多信息。

以上是关于在没有节点/npm 的情况下构建 SPA 前端的主要内容,如果未能解决你的问题,请参考以下文章

NPM 模块不会在没有 sudo 的情况下全局安装

如何在没有 npm install 的情况下从 github 运行 react 项目

错误:节点画布是在没有 JPEG 支持的情况下构建的

在没有Webpack的情况下从NPM模块解析Sass @import

如何在没有 SPA 或图形界面的情况下,仅通过 POSTMAN 访问 Laravel Sanctum 的 API 路由?

使用 Express 实现一个简单的 SPA 静态资源服务器