Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

> > > > 你好,关于发布的部分可以详细说明下吗? #39

Closed
liuxinyua opened this issue Apr 10, 2023 · 2 comments
Closed

Comments

@liuxinyua
Copy link

          > > > > 你好,关于发布的部分可以详细说明下吗?

如何生成.vue或者.html文件,如何打包,如何发布之类的
或者在代码里更新下这部分的功能,我最近正好在做可视化布局相关的项目

可以从现有项目提取一个最小运行时,只包含自定义组件和预览页面相关的代码。单独打包成一个项目运行。这样就有两个项目,A 项目是用户拖拽的,B 是直接用于渲染的最小运行时。当 A 项目点击发布时,就把当前的组件数据发布到服务器,同时生成对应的 ID。在访问 B 项目时把 ID 带上,后台把组件数据返回,在 B 项目上渲染。

你说的这个方式我懂了。
我现在遇到个需求。
在A项目拖拽排布生成预览页面,点击一个按钮,生成一个文件夹或者文件并下载。下载之后得到的这个文件可以放到服务器进行部署,出来的就是之前排好的页面。
所以我会问如何生成.vue或者.html文件,如何打包。
对于这个需求,期待你的建议

这个目前我也没有好的思路。

我现在有个方案,拿出来分享一下。
1、在public文件夹下新建一个文件夹,里面放上所有的静态资源、组件之类的,跟最小运行时有点像。这些文件,会被vue-cli自动复制一份。
2、写一个函数,接收一个json数据,返回一个模板字符串,这个字符串内容是html,会引入public里面的那些静态资源,例如vue.js、normalize.css、组件……就是把东西都引入。然后script里面new一个Vue,把拿到的json数据放进data里面。这里我引入了http-vue-loader.js,这样就可以把.vue拿来用了。
3、使用axios、jszip、file-saver。把html模板字符串用window.URL.createObjectURL转一下,然后和之前放在public里面的文件一起打包给用户。最终用户就可以得到一个zip包,解压之后是index.html和一堆静态文件,这些东西直接拖到服务器,就成了一个静态页面。

Originally posted by @longqizhu in #20 (comment)

@liuxinyua
Copy link
Author

您好,请问一下这个方案实现出来没?

@woai3c
Copy link
Owner

woai3c commented Jun 1, 2023

您好,请问一下这个方案实现出来没?

你好,目前不考虑生成源码的功能。如果你有兴趣可以提一个 PR,提 issue 请在对应的仓库下提 https://github.com/woai3c/visual-drag-demo。

@woai3c woai3c closed this as completed Jun 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants