看了某视频剪辑软件官方的文档,还是有点懵的。百度了一堆东西,终于成功的配置出基于vue-cli3的vue-ssr服务端预渲染。有帮助的话,还请点个赞建议使用nuxt,可以更好的做服务端渲染。
需要自己创建index.template.html文件。这个文件在
文章转载:乐字节
一、创建某视频剪辑软件项目$ vue创建vue-ssr创建目录名为vue-ssr的项目选择项目需要的选项,直接创建即可。
$ cd vue-ssr创建完成后,进入项目目录。
二、改造vue-ssr1、安装环境
\ n $ NPM安装vue-server-renderer lodash。合并web pack-node-externals cross-env express-registry=https://registry。NPM。淘宝。组织-保存-开发\ n \ N2,创建固态继电器配置文件
在根目录新建server.js文件,用于集成结节服务
//服务器。js \ n const express=require(' express ')\ n const fs=require(' fs ')\ n const { minify }=require(' html-minifier ')\ n const path=require(' path ')\ n const { createBundleRenderer }=require(' vue-server-renderer ')\ n const app=express()\ n const resolve=file=path。resolve(_ dirname,file)\ n const renderer=createBundleRenderer(require('/dist/vue-SSR-server-bundle。JSON '),{ runInNewContext: false,\ n template:fs。读取文件同步(解决(./index.template.html '),' utf-8 '), clientManifest: require('/dist/vue-SSR-客户端-清单。JSON '), basedir: resolve('/dist ')\ n })\ napp。使用(express。静态(路径。join(_ _ dirname,' dist ')\ napp。get(' * '(req,RES)={ \ n RES . set header(' Content-Type '' text/html ')\ n const handle error=err={ \ n if(err。URL){ \ n RES . redirect(错误。URL)\ n } else if(err。代码===404){ \ n研究状态(404).发送(' 404 |未找到页面) } else {资源状态(500).发送(' 500 |内部服务器错误)控制台。错误(` render期间出错:$ { req。URL } `)\ n控制台。错误(错误。堆栈)\ n } \ n const context={ \ n title:' document ' url: req.url,\ n关键字: ''描述:' '\ n } \ n呈现器。render tostring(context,(err,html)={ \ n if(err){ \ n return handle Error(err)\ n RES . send(minify(html,{ n在科学研究委员会目录下新建以下两个文件/src/entry-客户端。js/src/entry-server。射流研究…
1、入门-客户端。射流研究…
//入口客户端。js \ n从'导入{ createApp } ./main'//客户端特定引导逻辑……\ n const { app }=create app()\ n \ n//这里假定App.vue模板中根元素具有` id='app'`app .$mount('#app')2、entry-server.js
//入口服务器。js \ n \ n从'导入{ createApp } ./main '导出默认上下文={ //因为有可能会是异步路由钩子函数或组件,所以我们将返回一个承诺, //以便服务器能够等待所有的内容在渲染前, //就已经准备就绪。n return new Promise((resolve,reject)={ const { app,router }=create app(); //设置服务器端路由器的位置\ n路由器。推(上下文。网址); //等到路由器将可能的异步组件和钩子函数解析完\ n路由器。on ready(()={ \ n常量匹配组件=路由器。get matched components(); //匹配不到的路由,执行拒绝函数,并返回404如果(!matchedComponents .长度){退货拒绝({代码:404 \ n }); } //承诺应该解决应用程序实例,以便它可以渲染解决(应用程序); },拒绝);\ n });\ n };在根目录下新建网络包配置文件,vue-cli3对网络包的配置,已经转移到根目录下的vue。配置。射流研究…文件内。所以需要在根目录下新建一个vue。配置。射流研究…文件。
//vue。配置。js \ n const VueSSRServerPlugin=require(' vue-server-renderer/server-plugin ');\ n const VueSSRClientPlugin=require(' vue-server-renderer/client-plugin));\ n const node externals=require(' web pack-node-externals ');\ n const merge=require(' lodash。合并’);\ n const TARGET _ NODE=进程。环境。web pack _ TARGET===' NODE\ n成本目标=目标节点?服务器”:”客户端;\ n \ n \ n模块。exports={ \ n CSS:{ \ n extract:false \ n }, configureWebpack: ()=({ //将进入指向应用程序的服务器/客户端文件条目:`。/src/entry-${target}.js`, //对捆绑渲染器提供源地图支持 devtool:“源映射”,目标:目标节点?节点:' web '节点:目标节点?未定义:假,输出:{库目标:目标节点?'commonjs2 '未定义 },\ n//https://web pack . js . org/configuration/externals/# function \ n//https://github . com/liady/web pack-node-externals \ n//外置化应用程序依赖模块。可以使服务器构建速度更快, //并生成较小的捆文件外部的:目标节点?nodeExternals({ //不要外置化网络包需要处理的依赖模块 //你可以在这里添加更多的文件类型。例如,未处理*.某视频剪辑软件原始文件, //你还应该将修改`全球`(例如多填充物)的依赖模块列入白名单白名单:[/\\。css$/] }):未定义,优化:{ splitChunks: false //这里设置为假的,不然会一直建设不成功 }、插件:【目标节点?new VueSSRServerPlugin():new VueSSRClientPlugin()]\ n }),\ n chain web pack:config={ \ n config。module \ n . rule(' vue ')\ n . use(' vue-loader ')\ n . tap(options={ \ n merge(optimizess r:false \ n });\ n });\ n } \ n }修改package.json文件,在剧本属性中添加以下代码:
build:client '' vue-CLI-service build '\ n ' build:server '' cross-env web pack _ TARGET=node vue-CLI-service build-mode server '\ n ' build:win '' NPM运行build:server move dist \ \ \ \ vue-SSR-server-bundle。JSON包NPM运行构建:客户端移动包分布\ \ \ \ vue-SSR-server-bundle。' JSON ' \ n修改main.js、router/index.js、store/index.js文件
1、main.js
//main。js \ nim从“Vue”导入Vue\ n从'导入应用程序. 1/app。vue '\ n从'导入{创建路由器} ./router '\ n从'导入{ createStore } ./store '\ n值。配置。生产提示=假;导出函数create app(){ \ n const router=create router();\ n const store=createStore(); const app=new Vue({ router, store,\ n render:h=h(App)\ n })\ n return { App,router,store }}2、router/index.js
//路由器/索引。js \ nim从“Vue”导入Vue\ n从“vue路由器”导入VueRouter\ n从'导入主页'/views/home。vue '\ n \值。使用(vue路由器);const routes=[ { path: '/' name: 'Home ' component: Home },\ n];\ n导出函数create router(){ \ n返回新的vue路由器({ \ n mode:' history ' base: process.env.BASE_URL,\ n routes \ n });}3,商店/索引。射流研究…
//存储/索引。js \ nim从“Vue”导入Vue\尼姆从” Vuex “导入Vuex\ n \值。使用(Vuex);\ n导出函数createStore() {返回新的Vuex .存储({状态:{},突变:{},操作:{},模块:{} })}最后一步,运行命令:$ npm运行构建:赢构建完成后运行命令:$节点服务器然后到浏览器打开http://本地主机:8000如果出现了页面内容,则证明配置成功!
文章转载:乐字节
渲染服务是什么
日本AR/VR解决方案公司HOLO Lab宣布推出了一项升级服务,将微软Azure云计算Mesh服务集成到其3D数据可视化解决方案Mixpace中,并将其命名为Mixpace Remote Rendering。
该公司的“Mixpace服务”是一个面向制造业和建筑业的可视化解决方案。它使任何人都可以轻松地将3D CAD或BIM创建的数据转换为通用模型,可以通过使用AR/MR兼容设备进行检查和训练。
据悉,Mixpace远程渲染服务接入Azure后,可以展示超过1亿个相关领域的多边形模型,从而实现基于云的BIM模型实时调用。在此之前,这项工作仅靠本地渲染和基础云服务HoloLens 2是很难实现的。
Hollab是一家成立于2017年的公司,致力于与赫萝先生一起开发解决方案,实验室通过mispace远程渲染创建了这个新的服务项目,其中包括微软于2021年3月3日正式发布的“mispace远程渲染”。后者是微软最近发布的新功能,实现了在云上渲染3D模型,并允许实时流式传输到HoloLens 2和Windows PC。
在此之前,只有HoloLens 2的模型渲染性能在10万个多边形左右。现在,这种设备可以显示支持100万到1亿个多边形的3D模型的实时渲染和显示。
Mixpace远程渲染服务,支持10多种类型的3D CAD/BIM格式文件上传到这个平台,让你在HoloLens 2上看到高精度的多边形3D模型。此外,该服务还支持模型数据的远程转换和显示,压缩和同步不同串行设备上约1GB大小的文件数据。发布的压缩文件大小是普通版“Mixpace”的10倍左右。
目前mix space远程渲染服务有两种报价,一种是新用户报价,一种是“mix space”老用户报价。详情如下: