实时输出前端代码,折腾大半年的开源项目 sparrow-js

2020-10-26 07:30:44 +08:00
 sparrowwht7

前言

sparrow-js 第一次提交到 git 是在 2019-12,转眼将近一年时间,一直在坚持更新,唯一目标就是提升前端研发效率,几年前在市场加速数字化的背景下开始关注前端研发效率这块儿的东西,最开始在前公司内部开发了一个工程化方面的前端项目,大体做了两方面工作 1.前端工程搭建接入各种插件、公司内部服务。2.按照原子设计理论搭建物料体系。在搭建这个项目时产生了很多新灵感,去年年底决定将想法开始付诸实践所以就有了 sparrow-js 这个开源项目,这个项目更侧重于解决业务开发部分的前端效率提升,直接输出源代码。

远景

最初设想的有三大块功能:

目前本地低代码搭建已经完成一期的功能,可实现实时输出可读的 Vue 源代码,下面会做介绍。下一步大方向除了本地低代码项目的迭代外将开始实现 online 版的 sparrow-js,最后实现数据采集转化为源代码,最终达到秒级前端需求开发(部分场景下),达成前端提效目标。

介绍

sparrow-js 提供丰富的物料来帮助开发者提效,目前生成的源代码是 vue,element-ui 的代码,提供函数级别代码搭建能力,可以注入逻辑代码。界面展示如下图:

展示 1

展示 2

物料

提供多种类型的物料源,以此来满足不同场景下的需求。

使用示例如下:

示例 1:

示例 2:

更多功能感兴趣可自行体验。

基础功能

生产代码示例

以下链接为使用 sparrow-js 生成的未经任何修改的源代码;

https://github.com/sparrow-js/sparrow/blob/master/packages/sparrow-server/src/app/view/template/index.vue

快速使用

全局安装

# 全局安装
$ npm install -g sparrow-code

# 运行
$ sparrow

项目内安装

# 项目内安装
$ npm install sparrow-code -D

# package.json 增加 sparrow
"scripts": {
  "sparrow": "sparrow start -m page"
}

# 项目内安装 GUI 组件
$ npm install @sparrow-vue/develop-ui -S

# 项目内引用 App.vue
<template>
  <div id="app">
    <router-view />
    <sparrow />
  </div>
</template>

<script>
import Sparrow from '@sparrow-vue/develop-ui'

export default {
  components: {
    Sparrow
  },
  name: 'App'
}
</script>

开源地址

git 地址:https://github.com/sparrow-js/sparrow

总结

功能正在按既定规划由想法一步步落地,使用体验、文档也在逐步优化解决,目前完全由个人业余时间开发,正在努力使 sparrow-js 让更多人体验使用,欢迎关注交流,任何合理理性的想法都可以讨论探索并付诸实践,创作不易,感谢支持!

19758 次点击
所在节点    分享创造
106 条回复
simple233
2020-10-26 07:49:21 +08:00
加油!
THP301
2020-10-26 08:31:09 +08:00
这个工具看起来可以大幅提高开发效率,把工具的意义发挥出来了,不错
sparrowwht7
2020-10-26 08:55:08 +08:00
@THP301 这个项目的实现通过 AST 直接输出的代码可以复刻到大部分界面端技术上,还需要多花精力打磨
revalue
2020-10-26 09:36:01 +08:00
大厂有很多 low code 的项目,可能是还没有开源的。还有专门的团队搞这些
sparrowwht7
2020-10-26 09:46:33 +08:00
@revalue 了解的,去年刚重大厂出来,确实有不少 low code 、no code 的项目,国外更超前些,这种东西目前还处在竞争阶段
dinjufen
2020-10-26 09:52:59 +08:00
感觉自己要下岗了🐶
young
2020-10-26 10:04:11 +08:00
赞一个
sparrowwht7
2020-10-26 11:01:50 +08:00
@dinjufen 不能够,只能解决部分场景,定制化的复杂的目前还要大师们来开发😄
zvil
2020-10-26 11:06:02 +08:00
赞一个 抽空看看源码
bojue
2020-10-26 11:07:58 +08:00
@sparrowwht7 感觉 nocode 和行业需求也强相关,目前大部分做的都是后台管理系统,运营平台,H5 页面搭建,我比较看好但是没有解决好的的是:自动驾驶 /智慧城市 /细分行业
sparrowwht7
2020-10-26 11:16:48 +08:00
@bojue 完全赞同,领域内的 nocode 才有更大实际价值,这个需要相对领域的专业人士搞数字化部分
sparrowwht7
2020-10-26 11:45:19 +08:00
@zvil 多多交流😄
xiangyuecn
2020-10-26 12:03:01 +08:00
@sparrowwht7 #5 历史轮回,感觉又回到了 20 年前,Macromedia Dreamweaver (!Adobe )所见即所得😶
zqx
2020-10-26 12:16:21 +08:00
感觉是表单设计器+vue 代码生成器,想知道生成 vue 代码用的什么库?涉及事件绑定,生命周期钩子的时候,用模板字符串插值?不会是自己做个类似词法分析器的东西吧
sparrowwht7
2020-10-26 12:18:36 +08:00
@xiangyuecn 是啊,这种产物主要还是市场需求的轮回,B 端业务抬头了需求量旺盛,就出现很多这类产物
firefox12
2020-10-26 12:45:13 +08:00
@xiangyuecn dw 有什么缺点吗? 感觉好用没缺点。 慢慢的就看不到人用了。


不是太懂前端,怎么和我司 前端用的东西差不多,好像也是一个 wyswyg 的编辑器,貌似没开源,但是前端说基本上每个公司都有一个类似的。
ssshooter
2020-10-26 13:25:22 +08:00
持续关注
sparrowwht7
2020-10-26 14:09:38 +08:00
@zqx 不只是表单设计器哦,预览和生成的代码都是源代码,也提供了插件能力,理论上表单、表格、图表等等都可以。代码生成用的 cheerio ( template ) + babel ( script )
jimoya
2020-10-26 14:16:32 +08:00
牛逼,赞赞赞
sparrowwht7
2020-10-26 15:12:51 +08:00
@jimoya
@ssshooter

感谢支持,后续还有更精彩的😄

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/718505

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX