当前位置: 首页 > news >正文

政府新闻网站建设方案种子搜索神器在线引擎

政府新闻网站建设方案,种子搜索神器在线引擎,wordpress 后台忘了,东莞市网络seo推广哪家好前一阵子有前端管理台的开发需求,而之前前端涉及的较少,就找了一个现成的模版CoreUI,其中有ReactJS版本的模板,试了试就发现欲罢不能了。而后台为了开发便捷,还是选择了Spring Boot(其实还是选择Express玩J…

       前一阵子有前端管理台的开发需求,而之前前端涉及的较少,就找了一个现成的模版CoreUI,其中有ReactJS版本的模板,试了试就发现欲罢不能了。而后台为了开发便捷,还是选择了Spring Boot(其实还是选择Express玩JS全栈会更有意思)。

       后续整理了一套基于maven和gradle的SpringBootReact开发模版示例,上传到了Github(SpringBootReactDemo),这次就来简单谈谈其中的具体实现。

       首先在ReactJS开发的时候,使用“npm start”开启3000端口开始调试ReactJS,前端的JS请求后端数据的时候,由于后台使用SpringBoot开发,直接通过JS访问时会产生跨域问题,当然解决的方法很多,例如通过“Access-Control-Allow-Orgin”头域、JSONP等。但是在实际环境中,ReactJS资源打包后作为SpringBoot应用的静态资源部署时,并不会出现CORS问题,为此,最好能够将JS API后台接口请求发往3000端口后,再由3000端口转发至8080端口,好在Node提供了这个功能,且配置十分简单,只需要在pacakge.json中添加如下配置即可实现:

"proxy": "http://localhost:8080"

       解决了开发的问题,接下来最重要的就是打包了,最好的就是无论通过Grale还是Maven打包,能够自动执行ReactJS App的编译,并将编译后的静态资源一并打包。首先需要确保你的机器上安装好了Node环境,最好是也安装了Yarn,这个就不赘述了,接下来就来看看Gradle和Maven实现ReactJS App的编译工作。


Gradle方式

       build.gradle中的相关部分如下所示:

task npmBuild(type: Exec) {workingDir = file(NODE_PROJ_DIR)commandLine NODE_MANAGER, "run", "build"
}task npmInstall(type: Exec) {workingDir = file(NODE_PROJ_DIR)commandLine NODE_MANAGER, "install"
}task frontendAssemble(type: Copy, dependsOn: "npmBuild") {def buildDir = file("$NODE_PROJ_DIR/build")from buildDirinto "build/resources/main/static"
}processResources.dependsOn 'frontendAssemble'if (project.hasProperty("node.install")) {npmBuild.dependsOn 'npmInstall'
}

       其中NODE_PROJ_DIR和NODE_MANAGER变量的定义放在了gradle.properties中,如下所示:

NODE_PROJ_DIR=src/main/frontend
NODE_MANAGER=yarn

      NODE_PROJ_DIR指定了前端ReactJS的目录,NODE_MANAGER表示ReactJS的管理打包工具,你也可以选择npm或cnpm,只需要确保已全局安装,并且修改该变量值即可。

      通过如上配置,gradle打包时会运行相应的"yarn run build"进行编译,并将打包之后的资源文件放入SpringBoot的静态资源文件夹中:

gradle build

      如果同时需要进行CommonJS依赖的更新,可以增加node.install参数在编译前指定运行yarn install

gradle build -Pnode.install

Maven方式

      pom.xml中的相关部分如下所示:

     <properties>......<node.manager>yarn</node.manager></properties><build><pluginManagement><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><version>1.6.0</version><configuration><workingDirectory>${basedir}/src/main/frontend</workingDirectory></configuration></plugin></plugins></pluginManagement><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><executions><execution><id>node-build</id><goals><goal>exec</goal></goals><phase>compile</phase><configuration><executable>${node.manager}</executable><arguments><argument>run</argument><argument>build</argument></arguments></configuration></execution></executions></plugin><plugin><artifactId>maven-resources-plugin</artifactId><executions><execution><id>copy-frontend</id><goals><goal>copy-resources</goal></goals><phase>prepare-package</phase></execution></executions><configuration><outputDirectory>target/classes/static</outputDirectory><resources><resource><directory>src/main/frontend/build</directory><filtering>false</filtering></resource><resource><directory>src/main/resources</directory></resource></resources></configuration></plugin></plugins></build><profiles><profile><id>node-install</id><activation><property><name>node.install</name></property></activation><build><plugins><plugin><groupId>org.codehaus.mojo</groupId><artifactId>exec-maven-plugin</artifactId><executions><execution><id>node-install</id><goals><goal>exec</goal></goals><phase>process-resources</phase><configuration><executable>${node.manager}</executable><arguments><argument>install</argument></arguments></configuration></execution></executions></plugin></plugins></build></profile></profiles>

      其中node.manager表示ReactJS的管理打包工具,你也可以选择npm或cnpm,只需要确保已全局安装,并且修改该变量值即可。通过如上配置,maven打包时会运行相应的"yarn run build"进行编译,并将打包之后的资源文件放入SpringBoot的静态资源文件夹中:

mvn package

      如果同时需要进行CommonJS依赖的更新,可以增加node.install参数在编译前指定运行yarn install

mvn package -Dnode.install

    项目示例地址:https://github.com/DreamJM/SpringBootReactDemo

http://www.lbrq.cn/news/2808901.html

相关文章:

  • p2p网贷网站建设今日全国最新疫情通报
  • 做网站可以盈利吗深圳网站优化排名
  • 香港服务器网站销售网站排名
  • ai绘画软件免费百度seo搜索引擎优化厂家
  • 郑州门户网站建设哪家好杭州网站设计
  • 会简单的网站建设怎么自己制作网页
  • 两学一做考试答案网站微信代运营
  • 珠海网站推广价格网络推广服务合同范本
  • 社保网站上怎么做减员视频号视频下载助手app
  • 制作网站赚钱不最简单的网页制作
  • 做导购网站多少钱网址域名ip查询
  • 苏州网站建设制作网站建设方案书模板
  • 手工艺品外贸公司网站建设方案简易的旅游网页制作
  • 邯郸互联网公司seo网站推广实例
  • 洪泽区做网站aso排名优化
  • 做网站哪家公司最好综合查询
  • 天津网站推广宣传重庆网站优化排名推广
  • 嘉兴自助建网站竞价推广和信息流推广
  • 电商类网站建设需要多少钱seo技术培训江门
  • vue做的网站域名汇总百度极速版客服电话
  • WordPress显示403网站优化价格
  • 上海人才网官网招app优化推广
  • 山东最新通知今天山东公司网站推广优化
  • 做一般的公司门户网站投资额企业网站seo案例分析
  • 福州网站建设设计北京seo技术
  • 网店装修网站百度公司招聘信息
  • 网站建设行业增长率哈尔滨网络公司
  • 找大学生做家教去哪个网站找好新品推广计划与方案
  • 深圳网站设计权威乐云践新目前引流最好的平台
  • 太原网站建设费用seo优化的优点
  • 基于海光DCU平台的cube-studio软件适配
  • Day11 数据统计 图形报表
  • 软件设计师——计算机网络学习笔记
  • Java面试宝典:Redis底层原理(持久化+分布式锁)
  • 驱动(二)uboot编译+内核编译+文件系统
  • Docker操作速查表