热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前后端连载concurrently使用遇到的坑和经验记录koa2搭建的后端服务及vueadmin前端服务之间不同目录下连载

虽然之前的项目中有使用过前后端连载,但是由于依赖的更新以及开发语言的版本更替。甚至是vue-cli的更新,导致之前写的文章,参考价值仅限于

虽然之前的项目中有使用过前后端连载,但是由于依赖的更新以及开发语言的版本更替。甚至是vue-cli的更新,导致之前写的文章,参考价值仅限于原理与模板,具体的代码需要根据项目来决定。

concurrently依赖

npm i concurrently -D

在项目中install concurrenly这个依赖模块,不再赘述。

根据前后端所在的文件目录进行package.json文件的改造。
在这里插入图片描述
这个项目目录下第一个子文件夹我存放的是前端的服务,这个子文件夹下用koa2搭的服务器及应用框架在IT_admin_system文件夹下。因此这个项目有两个package.json文件,分别管理前端服务以及后端服务。针对这个项目 连载需要在前端项目的package.json改造。

关于concurrently这个依赖的作用,浅显来看 他就是同时启用两条命令。

比如有两个服务要开。

"start": "concurrently \"command1 arg\" \"command2 arg\""

当然这个start也可以是dev,这就要看项目的架构及所用的vue框架了。

以我的项目为例,没有改造前的package中的scripts:

"scripts": {"dev": "vue-cli-service serve","build:prod": "vue-cli-service build","build:stage": "vue-cli-service build --mode staging","preview": "node build/index.js --preview","svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml","lint": "eslint --ext .js,.vue src","test:unit": "jest --clearCache && vue-cli-service test:unit","test:ci": "npm run lint && npm run test:unit"},

由于我采用的是vue-cli脚手架搭建的项目,值得注意的是dev,也就是这个服务的启动方式是通过npm run dev来完成的。

再看看后端服务改造前的scripts:

"scripts": {"start": "node bin/www","dev": "./node_modules/.bin/nodemon bin/www","prd": "pm2 start bin/www","test": "echo \"Error: no test specified\" && exit 1"},

同样的 后端的服务也是npm run dev来启动。

改造后:

"scripts": {"server":"npm start --prefix IT_admin_system", // 可删"lulu": "vue-cli-service serve","dev":"concurrently \"npm run lulu\" \"npm start --prefix IT_admin_system\"","build:prod": "vue-cli-service build","build:stage": "vue-cli-service build --mode staging","preview": "node build/index.js --preview","svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml","lint": "eslint --ext .js,.vue src","test:unit": "jest --clearCache && vue-cli-service test:unit","test:ci": "npm run lint && npm run test:unit"},

我在scripts中重新定义了一个server,让他充当后端服务启动的命令“变量”,事实证明 这是脱裤子放屁行为。

我们只需要搞懂 如果我的服务不在同一个目录下 我应该怎么访问 查阅文档后发现 npm start --prefix 文件夹名就可以找到这个文件夹下的scripts模块下的start,并且运行。

所以我们现在在前端终端中输入npm start --prefix IT_admin_system可以把后端的服务启动了。

那么顺着这个思路,是不是

"concurrently \"npm run dev\" \"npm start --prefix IT_admin_system\""

就可以了呢?

然而这样做的后果是 不断地进行循环,所以需要一个变量接一下前端服务地启动命令。至于变量名是什么,那就看各位地喜好了
前端服务改:

"lulu": "vue-cli-service serve","dev":"concurrently \"npm run lulu\" \"npm start --prefix IT_admin_system\"",

后端改:

"start": "./node_modules/.bin/nodemon node bin/www",

最终前后端连载成功。

写在后面

一味跟着模板走还是不如把原理了解之后找到解决方法,依赖的文档:https://www.npmjs.com/package/concurrently 供以后忘了回顾。


推荐阅读
  • 微信民众号商城/小顺序商城开源项目介绍及使用教程
    本文介绍了一个基于WeiPHP5.0开发的微信民众号商城/小顺序商城的开源项目,包括前端和后端的目录结构,以及所使用的技术栈。同时提供了项目的运行和打包方法,并分享了一些调试和开发经验。最后还附上了在线预览和GitHub商城源码的链接,以及加入前端交流QQ群的方式。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • 在package.json中有如下两个对象:husky:{hooks:{pre-commit:lint-staged}},lint-staged:{src** ... [详细]
  • loader资源模块加载器webpack资源模块加载webpack内部(内部loader)默认只会处理javascript文件,也就是说它会把打包过程中所有遇到的 ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • React 小白初入门
    推荐学习:React官方文档:https:react.docschina.orgReact菜鸟教程:https:www.runoob.c ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 本文介绍了在Ubuntu下制作deb安装包及离线安装包的方法,通过备份/var/cache/apt/archives文件夹中的安装包,并建立包列表及依赖信息文件,添加本地源,更新源列表,可以在没有网络的情况下更新系统。同时提供了命令示例和资源下载链接。 ... [详细]
  • 用Vue实现的Demo商品管理效果图及实现代码
    本文介绍了一个使用Vue实现的Demo商品管理的效果图及实现代码。 ... [详细]
  • 本文介绍了自学Vue的第01天的内容,包括学习目标、学习资料的收集和学习方法的选择。作者解释了为什么要学习Vue以及选择Vue的原因,包括完善的中文文档、较低的学习曲线、使用人数众多等。作者还列举了自己选择的学习资料,包括全新vue2.5核心技术全方位讲解+实战精讲教程、全新vue2.5项目实战全家桶单页面仿京东电商等。最后,作者提出了学习方法,包括简单的入门课程和实战课程。 ... [详细]
  • npmrunbuild后dist文件夹下面直接浏览器打开index.html,css和js的路径都不正确。放到跟目录下就正常了,iis上同样只能在根目录下。我项目的目录如下: ... [详细]
  • 【前端工具】nodejs+npm+vue 安装(windows)
    预备先看看这几个是干嘛的,相互的关系是啥。nodejs是语言,类比到php。npm是个包管理,类比到composer。vue是个框架&# ... [详细]
  • Vue cli2.0 项目中使用Monaco Editor编辑器
    monaco-editor是微软出的一条开源web在线编辑器支持多种语言,代码高亮,代码提示等功能,与VisualStudioCode功能几乎相同。在项目中可能会用带代码编 ... [详细]
author-avatar
手机用户2502903535
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有