技能学习:学习使用Node.js + Vue.js,开发前端全栈网站-14-1.生产环境编译

简介: 将vue文件编译成静态文件,为项目上线做准备。

目前我们编辑的vue组件文件、scss样式工具文件都是在开发环境中作用的,我们需要使用npm run serve方法开启端口进行访问。
但在生产环境(项目上线环境)下,我们需要将开发环境中的文件编译成生产环境代码,将vue组件文件和scss样式工具文件编译成静态的html、css文件,同时将admin端、web端放入server端,从而形成一个完整的网站形态。
如需要访问web端,则访问域名:3000/web(本地环境如localhost:3000/web)

1.通过npm run build对admin端直接编译

首先确保admin端没有运行,然后对admin端文件进行编译:

cd admin
npm run build

在这里插入图片描述
此时,正在编译,编译完成后,在admin端中就生成了我们日常使用的静态文件,还为我们分好了类。
在这里插入图片描述
之后这些静态文件就可以上传至任何服务器中显示。

2.使用serve命令查看编译后的admin端

安装serve命令方法:

npm i -g serve

在这里插入图片描述
使用serve方法查看静态文件:

serve dist

在这里插入图片描述
生成了5000端口号的链接,点击进入:
在这里插入图片描述
没问题。
此时的静态文件与开发环境中逻辑相同,依附着server端进行数据查询抽取,如果单独将这些页面放入服务器中运行的话也就只是普通的静态页面无法进行数据交互。
所以我们如果想要正常获取接口,需要替换一下接口地址,将接口地址替换成同样上线的服务接口地址,可以涉及前后端分离。
在这里插入图片描述
但我们到目前位置想做的就是整套网站开发,使用的就是之前制作的server端,现在只需要将admin端静态文件放入server端,让admin端与server端成一体即可,继续使用server端后台。

3.将生成的admin静态文件放入server端

首先修改baseURL接口地址,改为动态切换,分别是之前的开发环境接口地址(localhost)生产环境接口地址
(1)利用vue-cli方法定义接口地址变量
定义接口地址环境变量process.env.VUE_APP_API_URL,其中process.env是环境变量,环境变量中定义以VUE_APP开头的变量名,起名为_API_URL。
在这里插入图片描述
一般在客户端是没有process环境变量的,但我们使用vue-cli中的vue pack打包后就可以生成这个环境变量。
同时我们在admin端新建一个环境变量文件 .env.development(生产环境下的环境变量):
在这里插入图片描述
此环境变量的接口地址用于开发环境,但如果没有这个环境变量,也就是在生产环境中,我们需要给其设定一个绝对地址’/admin/api‘,确保在生产环境中调用接口找到正确的接口地址。
如此就实现了baseURL的动态接口地址绑定
在这里插入图片描述
(2)再次编译admin端,将生成的admin静态文件放入server端

cd admin
npm run build

编译完成后我们再次到app.js静态文件中查找接口地址,查看刚刚的修改:
在这里插入图片描述
成功,没问题。
此时我们将生成的静态文件放入server端,后续通过server端进行访问(localhost:3000/admin)。
在server端新建文件夹admin,复制生成的dist文件夹中的文件,粘贴到server端下面的admin文件夹中:
在这里插入图片描述
由于这些文件均视为静态文件,所以定义路由方法与图片上传一样:
在这里插入图片描述
此时进入server端,输入路由地址 localhost:3000/admin:
在这里插入图片描述
此时页面并未出现我们预想的页面,但在Network中可以看出文件确实被引用且找到,但却找不到css和js文件,这是因为css和js文件地址错误导致,检查admin中index.html静态文件:
在这里插入图片描述
文件地址是’/css‘,但如果想查询成功,地址应该是'/admin/css'才可以。
此时我们修改server端中admin的静态路由,将'/admin'改为'/':
在这里插入图片描述
此时直接访问localhost:3000则可正常打开admin端。
但这与我们预想的localhost:3000/admin和localhost:3000/web不符合,所以我们要进行下一步修改。

4.使用vue CLI设置静态文件编译位置

首先我们参考vue CLI配置参考
在这里插入图片描述
在admin端新建vue-cli配置文件vue.config.js:
在这里插入图片描述

module.exports = {
    // 输出文件夹(配置文件时,将配置好的静态文件直接输出到server端下面的admin文件夹,而不用输出到admin端的dist文件夹中)
    outputDir: __dirname + '/../server/admin',
    // 默认公共路径:如果环境变量 === '生产环境',则使用'/admin'的publicPath,否则直接使用'/'
    publicPath: process.env.NODE_ENV === 'production' ? '/admin/' : '/',
}

完成配置后,我们将之前生成的admin端静态文件都删除(包括server/admin和admin/dist),重新生成admin端静态文件:
在这里插入图片描述

cd admin
npm run build

在这里插入图片描述
此时生成的admin端静态文件自动输出到server/admin文件夹中,同时文件路径均改为了/admin/js/..。
这样,在server端index.js路由中将地址改回/admin,测试:
在这里插入图片描述
在这里插入图片描述
没问题,到此admin端生产环境编译过程完成。
web端与admin端相同,大家自行测试。下节我们购买域名和服务器进行线上部署。

相关文章
|
2月前
|
JSON 监控 前端开发
AMIS:百度开源的前端低代码神器,18.4k star 背后的开发效率提升利器
AMIS(前端低代码框架)是百度开源的低代码前端框架,基于纯 JSON 配置即可生成完整后台页面,包括表单、表格、图表、CRUD 列表,支持可视化拖拽编辑。,星标数已达 18.4k,百度内部已沉淀超过 5 万个页面,广泛应用于审核系统、数据管理后台、模型监控等落地场景
459 0
|
5月前
|
存储 消息中间件 前端开发
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
校园圈子系统校园论坛小程序采用uni-app前端框架,支持多端运行,结合PHP后端(如ThinkPHP/Laravel),实现用户认证、社交关系管理、动态发布与实时聊天功能。前端通过组件化开发和uni.request与后端交互,后端提供RESTful API处理业务逻辑并存储数据于MySQL。同时引入Redis缓存热点数据,RabbitMQ处理异步任务,优化系统性能。核心功能包括JWT身份验证、好友系统、WebSocket实时聊天及活动管理,确保高效稳定的用户体验。
291 4
PHP后端与uni-app前端协同的校园圈子系统:校园社交场景的跨端开发实践
|
7月前
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
303 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
6月前
|
监控 前端开发 小程序
陪练,代练,护航,代打小程序源码/前端UNIAPP-VUE2.0开发 后端Thinkphp6管理/具备家政服务的综合型平台
这款APP通过技术创新,将代练、家政、娱乐社交等场景融合,打造“全能型生活服务生态圈”。以代练为切入点,提供模块化代码支持快速搭建平台,结合智能匹配与技能审核机制,拓展家政服务和商业管理功能。技术架构具备高安全性和扩展性,支持多业务复用,如押金冻结、录屏监控等功能跨领域应用。商业模式多元,包括交易抽成、增值服务及广告联名,同时设计跨领域积分体系提升用户粘性,实现生态共生与B端赋能。
471 12
|
12月前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
877 14
|
12月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
226 0
|
12月前
|
人工智能 自然语言处理 运维
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。
346 6
|
SpringCloudAlibaba JavaScript 前端开发
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
分布式组件、nacos注册配置中心、openfegin远程调用、网关gateway、ES6脚本语言规范、vue、elementUI
谷粒商城笔记+踩坑(2)——分布式组件、前端基础,nacos+feign+gateway+ES6+vue脚手架
|
12月前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
445 1
|
12月前
|
机器学习/深度学习 弹性计算 自然语言处理
前端大模型应用笔记(二):最新llama3.2小参数版本1B的古董机测试 - 支持128K上下文,表现优异,和移动端更配
llama3.1支持128K上下文,6万字+输入,适用于多种场景。模型能力超出预期,但处理中文时需加中英翻译。测试显示,其英文支持较好,中文则需改进。llama3.2 1B参数量小,适合移动端和资源受限环境,可在阿里云2vCPU和4G ECS上运行。
518 1