Coder Social home page Coder Social logo

ymm-tech / gods-pen Goto Github PK

View Code? Open in Web Editor NEW
4.4K 132.0 793.0 2.6 MB

基于vue的高扩展在线网页制作平台,可自定义组件,可添加脚本,可数据统计。A mobile page builder/editor, similar with amolink.

Home Page: https://godspen.ymm56.com

License: MIT License

JavaScript 22.11% CSS 6.20% Vue 66.08% Smarty 0.87% Stylus 0.62% SCSS 4.13%

gods-pen's Introduction

License

说明

该项目已经不再进行维护,主要用来学习参考。为了更好提供搭建方面的解决方案,我们在这个项目基础上做了升级,提供了一个更好的版本。详情见 https://saas.mlml.design/home.html

🏠 官网

官网: https://godspen.ymm56.com/

使用手册: https://godspen.ymm56.com/doc/cookbook/introduce.html

在线体验: https://godspen.ymm56.com/admin/#/home

私有部署: https://godspen.ymm56.com/doc/cookbook/install.html

组件商城: https://godspen.ymm56.com/shop/

👉 `喜欢别忘了点个 Star 支持我们,你的支持是我们坚持的动力` 👈

码良是什么

码良是一个在线生成 H5 页面并提供页面管理和页面编辑的平台,用于快速制作 H5 页面。用户无需掌握复杂的编程技术,通过简单拖拽、少量配置即可制作精美的页面,可用于营销场景下的页面制作。同时,也为开发者提供了完备的编程接入能力,通过脚本和组件的形式获得强大的组件行为和交互控制能力。

码良为谁而作

如上所述,码良不仅可服务于运营人员用来制作轻业务的营销页面,基于完备的编程接入能力,甚至可以作为开发者进行快速业务迭代的工具。 码良的初心是创建一个开源免费的平台,希望有才的人在平台上贡献自己的组件,脚本,设计模板页面,如果需要后续可以提供组件或脚本开发者设置免费或则收费使用 当然完全也支持公司内部搭建使用。

码良现状

码良发布于2018年3月初,截止2020年7月目前已经支撑运满满4100多个活动页面。期间也得到了很多反馈、建议,以及 Bug 报告,基于此,我们持续迭代,致力于提升操作效率,打磨用户体验。道阻且长,仍需努力。目前你在官网上体验的所有能力 完全开源开放。

支持功能

  1. 编辑器

    • 面向不同角色切换工作台,并可以自行拖拽
    • 组件,以及组合组件
    • 实时预览的动画编辑
    • 实时预览,并可按帧拖动预览的动画编辑
    • 脚本功能,灵活的扩展编辑器面板的属性(非常容易给组件额外添加自定义的属性和方法,完全自己代码控制)
    • 样式编辑,基础模式,代码模式。方便开发和运营不同角色使用
    • 在线预览
    • 二维码预览
    • 可导入psd
    • 支持pc端和移动端
  2. 组件商城

    • 25+组件,也欢迎开发者贡献自己的组件,查看所有组件
    • 可上传,下载自己或别人的组件
    • 可出售自己开发的组件
    • 可购买别人的组件
  3. 后台管理与数据

    • 可按团队管理页面 类似gitlab管理项目。合理的权限管理
    • 表单数据收集,并有数据同居
    • 支持页面的pv uv以及自定义埋点信息
    • 方便的资源和组件管理

组件商城

提供第三方组件快速导入自己搭建的系统,也可以把自己开发比较好的组件上传到组件商城提供他人免费或者付费使用

组件接入简单

如果第三方组件满足不了你,我们提供方便的脚手架创建组件,你可以把一个小功能,一个页面,一个项目做成一个组件,暴露参数给其他同学在编辑器里面填写 组件开发文档

图为组件开发套件使用动图

脚本扩展组件功能

每个特定功能的组件可以通过组合各种功能(点击跳转,打点等等任何逻辑)脚本来达到对组件功能的扩展。完成特定的功能,并友好的提供参数给到组件的使用者在编辑器上填写。目前每个脚本都是一个 Vue 对象,这对熟悉 Vue 的开发者非常友好,深入了解请前往 码良是如何设计高扩展的在线网页制作平台的

图为编辑器工作区界面

组件动画展示

运营活动对一些简单的动画提供支持,方便做一些入场和出场的动画,提升活动的交互感,我们使用了 Animate.css 提供的一套 CSS 动画。并提供逐帧设置预览,方便使用。下面提供简单的展示

合成组件展示

合成组件就是选择已有的节点保存为一个通用的组件,方便下次直接使用

使用组合组件

导出组合组件

模板页面

页面模板的目的和组合组件类似,都是提供已经做好的内容,运营快速选择使用达到快速上线活动的目的,下面是简单的演示

安装依赖

这里切记,使用 yarn install 命令安装依赖,不要使用 npm 直接安装依赖,以确保版本统一。

// yarn install == yarn
yarn

开发

npm start

构建

编辑器构建

npm run editor:build

渲染器构建

npm run client:build

技术实现和教程

常见问题

Node.js 版本须控制在 10.x ,使用诸如 11.x、12.x 的版本会导致在安装依赖时报错

项目依赖须使用 yarn 安装,不推荐使用 npm ,否则会产生依赖版本上的问题

在 Windows 系统上安装依赖时,如果缺少 C++ 编译环境会报错

可以尝试全局安装 windows-build-tools windows-build-tools 是一个 npm 包,可以一键安装 c++ 编译所需的 python27、Visual Studio、C++ Build Tool 等。 Both installations are conflict-free, meaning that they do not mess with existing installations of Visual Studio, C++ Build Tools, or Python

如果碰到安装 Sass 模块失败,单独安装一下即可

License

MIT

交流群

钉钉 微信
优先加钉钉群
如果上面微信二维码过期,点击我查看最新二维码 添加的时候备注上 码良 我再邀请你进入群聊

支持我们

你可以打赏我们 ☕ 来杯咖啡 ☕

也可以点个 Star

开源项目需要的是持续地坚持,而我们坚持的动力当然也来自于你们的支持,希望你 👉 来都来了,加个关注再走吧 👈

gods-pen's People

Contributors

arnan-wei avatar hex-ci avatar jy03078959 avatar liby avatar littlee avatar ljybill avatar ll931230 avatar ly525 avatar mingyuanwei avatar panaru0430 avatar sensitivemix avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gods-pen's Issues

发布组件失败

按照文档开发组件,基本上没有改动,执行发布时失败,提示 403 - {"code":500,"msg":"请求不合法"}

image

另外,在码良后台“左侧菜单-用户设置”查看的 token,每次切换一下页面就会变化,这是怎么回事?

顺便一提,形如 [email protected] 的邮箱在此页面提示 请输入正确的邮箱地址

gods-pen和gods-pen-docker 关联不起来

1.clone gods-pen
2.clone gods-pen-docker
3.启动gods-pen,gods-pen-docker
image

image
4.访问服务
image
5.你们项目非常好,但是文档不够细,完整的流程写细致点就完美了,如果可以很简单的部署就完美了

shangcha

由于nginx的几行解决跨域的代码导致部署后的项目是空白的 然后我们部署的同事就去掉了 请问这个项目还有别的解决跨域的方式吗

复杂组件之间的Animation是如何实现的?

非常感谢这个工具,大大的提高我们的效率。

这里我们有点疑问关于如何实现几个组件之间的animation的交互呢?

链接里面解释了一些比较简单的animation,不过如果是2-3个以上的组件之间的动画该如何实现呢?

非常感谢

如何做好设计稿适配,是否支持从 PSD 文件导入素材?

  • 设计师提供了 750*1334 的设计稿,但是编辑器只能做 320/360/414 的适配?只能通过一个个拉伸大小的方式?
  • 从 PSD 导出切图后,需要
while (切图.length) {
  上传()
  看一眼设计稿()
  调整大小()
  看一眼设计稿()
  拖动到与设计稿对应的位置()
}

这个过程相当耗时,如果能直接导入 PSD 可以节省大量重复性操作

.

使用源码方式 `gods-pen serve fetch` 执行报错

maliang gods-pen serve fetch                                      [11:13:51]
fs.js:35
} = primordials;
    ^

ReferenceError: primordials is not defined
    at fs.js:35:5
    at req_ (/usr/local/lib/node_modules/gods-pen-cli/node_modules/natives/index.js:143:24)
    at Object.req [as require] (/usr/local/lib/node_modules/gods-pen-cli/node_modules/natives/index.js:55:10)
    at Object.<anonymous> (/usr/local/lib/node_modules/gods-pen-cli/node_modules/fstream/node_modules/graceful-fs/fs.js:1:37)
    at Module._compile (internal/modules/cjs/loader.js:1156:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1176:10)
    at Module.load (internal/modules/cjs/loader.js:1000:32)
    at Function.Module._load (internal/modules/cjs/loader.js:899:14)
    at Module.require (internal/modules/cjs/loader.js:1042:19)
    at require (internal/modules/cjs/helpers.js:77:18)

发布的正式页面不包含element-ui库

发布的正式页面不包含element-ui,导致使用了element-ui的组件无法正常展示出来
组件如果加入elemet-ui的依赖,会导致editor无法编辑页面,页面会直接卡死

图片组建上传图片时的bug

相关代码

// d-resourceSelect.vue
...
      selectImage: function () {
        this.$refs.UploadImage.selectFile()
      },
...

报错如下
Screenshot from 2020-06-24 14-49-03

vue.runtime.esm.js?2b0e:619 [Vue warn]: Error in v-on handler: "TypeError: this.$refs.UploadImage.selectFile is not a function"

found in

---> <DResourceSelect> at src/dialog/d-resourceSelect.vue
       <Dialogs> at src/components/Dialogs.vue
         <Editor> at src/Editor.vue
           <Root>
warn @ vue.runtime.esm.js?2b0e:619
logError @ vue.runtime.esm.js?2b0e:1884
globalHandleError @ vue.runtime.esm.js?2b0e:1879
handleError @ vue.runtime.esm.js?2b0e:1839
invokeWithErrorHandling @ vue.runtime.esm.js?2b0e:1862
invoker @ vue.runtime.esm.js?2b0e:2179
original._wrapper @ vue.runtime.esm.js?2b0e:6917
vue.runtime.esm.js?2b0e:1888 TypeError: this.$refs.UploadImage.selectFile is not a function
    at VueComponent.selectImage (d-resourceSelect.vue?a28b:279)
    at invokeWithErrorHandling (vue.runtime.esm.js?2b0e:1854)
    at HTMLDivElement.invoker (vue.runtime.esm.js?2b0e:2179)
    at HTMLDivElement.original._wrapper (vue.runtime.esm.js?2b0e:6917)

Docker 部署添加组件遇到的几个问题

Docker部署环境:centos8 64位 Docker version 19.03.12

按照官方使用手册Docker部署之后添加组件时提示:用户认证失败,重新登录
4C6ECE0B-BC05-4F24-A3FB-C1E311FE5542
5C3C7957-AB68-4886-9469-BBFE5A63BCB0

多次刷新页面----->添加组件 重复多次之后组件导入成功但是无法正常使用
组件异常

上传功能也无法正常使用
87224189-CBC7-44C9-B854-93C06F537A1F

关于如何实现不同设备的样式响应

首先 很好的项目,获益匪浅,非常感谢。

这里有个疑问,码良如何实现在不同设备里面的响应?

我们这里普遍遇到的情况就是,在拖动了些组件后,样式被设置的非常固定。然后得自己手动的更改成百分比,为了达成不同设备的展示。

谢啦

docker部署完,上传图片出现跨域

控制台报错如下,has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

能否把运满满或者大家设计的活动发出来

首先非常感谢运满满开源码良,感谢你们的付出。

虽然说码良可以完全自由发挥,没有天花板,但是缺少产品级活动 demo发出来,让我们刚使用时还是束手束脚。

希望能整理收集一些产品级活动出来供大家参考

注册收不到激活邮件,本地yarn安装依赖时报错

  • 注册后一直停留在激活页面,但邮箱始终收不到激活邮件;
  • 本地通过yarn安装依赖时报错,
➜  gods-pen git:(master) yarn
yarn install v1.19.1
[1/4] 🔍  Resolving packages...
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning " > [email protected]" has unmet peer dependency "webpack@^4.5.0".
warning " > [email protected]" has incorrect peer dependency "monaco-editor@^0.14.1".
warning " > [email protected]" has unmet peer dependency "webpack@^1 || ^2 || ^3 || ^4".
warning " > [email protected]" has unmet peer dependency "webpack@^3.0.0 || ^4.0.0".
[4/4] 🔨  Building fresh packages...
[1/4] ⠈ oniguruma
[2/4] ⠈ fsevents
[-/4] ⠈ waiting...
warning Error running install script for optional dependency: "/Users/zjm/Community/gods-pen/node_modules/fsevents: Command failed.
Exit code: 1
Command: node install
Arguments: 
Directory: /Users/zjm/Community/gods-pen/node_modules/fsevents
Output:
node-pre-gyp info it worked if it ends with ok
node-pre-gyp info using [email protected]
node-pre-gyp info using [email protected] | darwin | x64
node-pre-gyp WARN Using request for node-pre-gyp https download 
node-pre-gyp info check checked for \"/Users/zjm/Community/gods-pen/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64/fse.node\" (not found)
node-pre-gyp http GET https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.2.7/fse-v1.2.7-node-v72-darwin-x64.tar.gz
node-pre-gyp http 404 https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.2.7/fse-v1.2.7-node-v72-darwin-x64.tar.gz
node-pre-gyp WARN Tried to download(404): https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.2.7/fse-v1.2.7-node-v72-darwin-x64.tar.gz 
node-pre-gyp WARN Pre-built binaries not found for [email protected] and [email protected] (node-v72 ABI, unknown) (falling back to source compile with node-gyp) 
node-pre-gyp http 404 status code downloading tarball https://fsevents-binaries.s3-us-west-2.amazonaws.com/v1.2.7/fse-v1.2.7-node-v72-darwin-x64.tar.gz 
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | darwin | x64
gyp info ok 
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | darwin | x64
gyp info spawn /usr/bin/python2
gyp info spawn args [
gyp info spawn args   '/Users/zjm/Community/gods-pen/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/zjm/Community/gods-pen/node_modules/fsevents/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/zjm/Community/gods-pen/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/zjm/.node-gyp/12.13.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/Users/zjm/.node-gyp/12.13.0',
gyp info spawn args   '-Dnode_gyp_dir=/Users/zjm/Community/gods-pen/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/Users/zjm/.node-gyp/12.13.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/Users/zjm/Community/gods-pen/node_modules/fsevents',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
node-pre-gyp WARN Pre-built binaries not installable for [email protected] and [email protected] (node-v72 ABI, unknown) (falling back to source compile with node-gyp) 
node-pre-gyp WARN Hit error Connection closed while downloading tarball file 
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | darwin | x64
gyp info ok 
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | darwin | x64
gyp info spawn /usr/bin/python2
gyp info spawn args [
gyp info spawn args   '/Users/zjm/Community/gods-pen/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/zjm/Community/gods-pen/node_modules/fsevents/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/zjm/Community/gods-pen/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/zjm/.node-gyp/12.13.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/Users/zjm/.node-gyp/12.13.0',
gyp info spawn args   '-Dnode_gyp_dir=/Users/zjm/Community/gods-pen/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/Users/zjm/.node-gyp/12.13.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/Users/zjm/Community/gods-pen/node_modules/fsevents',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp info ok 
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | darwin | x64
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
make: *** No targets.  Stop.
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/zjm/Community/gods-pen/node_modules/node-gyp/lib/build.js:262:23)
gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 19.2.0
gyp ERR! command \"/Users/zjm/.nvm/versions/node/v12.13.0/bin/node\" \"/Users/zjm/Community/gods-pen/node_modules/node-gyp/bin/node-gyp.js\" \"build\" \"--fallback-to-build\" \"--module=/Users/zjm/Community/gods-pen/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64/fse.node\" \"--module_name=fse\" \"--module_path=/Users/zjm/Community/gods-pen/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64\" \"--napi_version=5\" \"--node_abi_napi=napi\"
gyp ERR! cwd /Users/zjm/Community/gods-pen/node_modules/fsevents
gyp ERR! node -v v12.13.0
gyp ERR! node-gyp -v v3.8.0
gyp ERR! not ok 
node-pre-gyp ERR! build error 
node-pre-gyp ERR! stack Error: Failed to execute '/Users/zjm/.nvm/versions/node/v12.13.0/bin/node /Users/zjm/Community/gods-pen/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/zjm/Community/gods-pen/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64/fse.node --module_name=fse --module_path=/Users/zjm/Community/gods-pen/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64 --napi_version=5 --node_abi_napi=napi' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/Users/zjm/Community/gods-pen/node_modules/fsevents/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:1021:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
node-pre-gyp ERR! System Darwin 19.2.0
node-pre-gyp ERR! command \"/Users/zjm/.nvm/versions/node/v12.13.0/bin/node\" \"/Users/zjm/Community/gods-pen/node_modules/fsevents/node_modules/node-pre-gyp/bin/node-pre-gyp\" \"install\" \"--fallback-to-build\"
node-pre-gyp ERR! cwd /Users/zjm/Community/gods-pen/node_modules/fsevents
node-pre-gyp ERR! node -v v12.13.0
node-pre-gyp ERR! node-pre-gyp -v v0.10.3
node-pre-gyp ERR! not ok 
Failed to execute '/Users/zjm/.nvm/versions/node/v12.13.0/bin/node /Users/zjm/Community/gods-pen/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/zjm/Community/gods-pen/node_modules/fsevents/lib/binding/Release/node-v72-darwin-x64/fse.no[1/4] ⠂ oniguruma
[-/4] ⠂ waiting...
[-/4] ⠂ waiting...
error /Users/zjm/Community/gods-pen/node_modules/oniguruma: Command failed.
Exit code: 1
Command: node-gyp rebuild
Arguments: 
Directory: /Users/zjm/Community/gods-pen/node_modules/oniguruma
Output:
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | darwin | x64
gyp info find Python using Python version 2.7.16 found at "/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python"
gyp info spawn /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python
gyp info spawn args [
gyp info spawn args   '/Users/zjm/.nvm/versions/node/v12.13.0/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args   'binding.gyp',
gyp info spawn args   '-f',
gyp info spawn args   'make',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/zjm/Community/gods-pen/node_modules/oniguruma/build/config.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/zjm/.nvm/versions/node/v12.13.0/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
gyp info spawn args   '-I',
gyp info spawn args   '/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/common.gypi',
gyp info spawn args   '-Dlibrary=shared_library',
gyp info spawn args   '-Dvisibility=default',
gyp info spawn args   '-Dnode_root_dir=/Users/zjm/Library/Caches/node-gyp/12.13.0',
gyp info spawn args   '-Dnode_gyp_dir=/Users/zjm/.nvm/versions/node/v12.13.0/lib/node_modules/npm/node_modules/node-gyp',
gyp info spawn args   '-Dnode_lib_file=/Users/zjm/Library/Caches/node-gyp/12.13.0/<(target_arch)/node.lib',
gyp info spawn args   '-Dmodule_root_dir=/Users/zjm/Community/gods-pen/node_modules/oniguruma',
gyp info spawn args   '-Dnode_engine=v8',
gyp info spawn args   '--depth=.',
gyp info spawn args   '--no-parallel',
gyp info spawn args   '--generator-output',
gyp info spawn args   'build',
gyp info spawn args   '-Goutput_dir=.'
gyp info spawn args ]
gyp info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
  CC(target) Release/obj.target/oniguruma/deps/onig/regcomp.o
  CC(target) Release/obj.target/oniguruma/deps/onig/regenc.o
  CC(target) Release/obj.target/oniguruma/deps/onig/regerror.o
  CC(target) Release/obj.target/oniguruma/deps/onig/regexec.o
  CC(target) Release/obj.target/oniguruma/deps/onig/regext.o
  CC(target) Release/obj.target/oniguruma/deps/onig/reggnu.o
  CC(target) Release/obj.target/oniguruma/deps/onig/regparse.o
  CC(target) Release/obj.target/oniguruma/deps/onig/regposerr.o
  CC(target) Release/obj.target/oniguruma/deps/onig/regposix.o
  CC(target) Release/obj.target/oniguruma/deps/onig/regsyntax.o
  CC(target) Release/obj.target/oniguruma/deps/onig/regtrav.o
  CC(target) Release/obj.target/oniguruma/deps/onig/regversion.o
  CC(target) Release/obj.target/oniguruma/deps/onig/st.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/ascii.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/big5.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/cp1251.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/euc_jp.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/euc_kr.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/euc_tw.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/gb18030.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_1.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_2.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_3.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_4.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_5.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_6.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_7.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_8.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_9.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_10.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_11.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_13.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_14.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_15.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/iso8859_16.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/koi8.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/koi8_r.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/mktable.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/sjis.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/unicode.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/utf16_be.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/utf16_le.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/utf32_be.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/utf32_le.o
  CC(target) Release/obj.target/oniguruma/deps/onig/enc/utf8.o
  LIBTOOL-STATIC Release/oniguruma.a
  CXX(target) Release/obj.target/onig_scanner/src/onig-result.o
  CXX(target) Release/obj.target/onig_scanner/src/onig-reg-exp.o
  CXX(target) Release/obj.target/onig_scanner/src/onig-scanner.o
../src/onig-scanner.cc:13:82: error: too few arguments to function call, single argument 'context' was not specified
  target->Set(Nan::New<String>("OnigScanner").ToLocalChecked(), tpl->GetFunction());
                                                                ~~~~~~~~~~~~~~~~ ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8.h:5995:3: note: 'GetFunction' declared here
  V8_WARN_UNUSED_RESULT MaybeLocal<Function> GetFunction(
  ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:351:31: note: expanded from macro 'V8_WARN_UNUSED_RESULT'
#define V8_WARN_UNUSED_RESULT __attribute__((warn_unused_result))
                              ^
../src/onig-scanner.cc:42:76: error: no matching member function for call to 'ToObject'
    OnigString* onigString = node::ObjectWrap::Unwrap<OnigString>(info[0]->ToObject());
                                                                  ~~~~~~~~~^~~~~~~~
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2576:44: note: candidate function not viable: requires single argument 'context', but no arguments were provided
  V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
                                           ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8.h:2590:31: note: candidate function not viable: requires single argument 'isolate', but no arguments were provided
                Local<Object> ToObject(Isolate* isolate) const);
                              ^
../src/onig-scanner.cc:61:23: error: no matching constructor for initialization of 'String::Utf8Value'
    String::Utf8Value utf8Value(sources->Get(i));
                      ^         ~~~~~~~~~~~~~~~
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3046:5: note: candidate constructor not viable: no known conversion from 'Local<v8::Value>' to 'const v8::String::Utf8Value' for 1st argument
    Utf8Value(const Utf8Value&) = delete;
    ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3039:5: note: candidate constructor not viable: requires 2 arguments, but 1 was provided
    Utf8Value(Isolate* isolate, Local<v8::Value> obj);
    ^
../src/onig-scanner.cc:91:13: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
    result->Set(Nan::New<String>("index").ToLocalChecked(), Nan::New<Number>(bestResult->Index()));
            ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3402:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/onig-scanner.cc:92:13: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
    result->Set(Nan::New<String>("captureIndices").ToLocalChecked(), CaptureIndicesForMatch(bestResult.get(), source));
            ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3402:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/onig-scanner.cc:108:14: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
    capture->Set(Nan::New<String>("index").ToLocalChecked(), Nan::New<Number>(index));
             ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3402:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/onig-scanner.cc:109:14: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
    capture->Set(Nan::New<String>("start").ToLocalChecked(), Nan::New<Number>(captureStart));
             ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3402:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/onig-scanner.cc:110:14: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
    capture->Set(Nan::New<String>("end").ToLocalChecked(), Nan::New<Number>(captureEnd));
             ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3402:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/onig-scanner.cc:111:14: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
    capture->Set(Nan::New<String>("length").ToLocalChecked(), Nan::New<Number>(captureEnd - captureStart));
             ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3402:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
../src/onig-scanner.cc:112:15: warning: 'Set' is deprecated: Use maybe version [-Wdeprecated-declarations]
    captures->Set(index, capture);
              ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8.h:3411:3: note: 'Set' has been explicitly marked deprecated here
  V8_DEPRECATED("Use maybe version",
  ^
/Users/zjm/Library/Caches/node-gyp/12.13.0/include/node/v8config.h:311:29: note: expanded from macro 'V8_DEPRECATED'
  declarator __attribute__((deprecated(message)))
                            ^
7 warnings and 3 errors generated.
make: *** [Release/obj.target/onig_scanner/src/onig-scanner.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/Users/zjm/.nvm/versions/node/v12.13.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:210:5)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
gyp ERR! System Darwin 19.2.0
gyp ERR! command "/Users/zjm/.nvm/versions/node/v12.13.0/bin/node" "/Users/zjm/.nvm/versions/node/v12.13.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/zjm/Community/gods-pen/node_modules/oniguruma
gyp ERR! node -v v12.13.0

mac环境下使用递归组件导致页面无法正常渲染,cpu超100%

现象

页面一直处于loading状态,cpu使用率超100%
image

递归组件调用

image

JSON数据源

[
  {
    "children": [
      {
        "children": [
          {
            "name": "组件列表",
            "component": "widgetComponent",
            "close": true,
            "pop": true
          },
          {
            "name": "组合组件",
            "component": "widgetCombinedComponents",
            "close": true,
            "pop": true
          }
        ],
        "type": "panel",
        "flex": 0.5
      },
      {
        "children": [
          {
            "name": "组件树",
            "component": "widgetComponentTree",
            "close": true,
            "pop": true
          },
          {
            "name": "页面模板",
            "component": "widgetPageTemplate"
          }
        ],
        "type": "panel",
        "flex": 0.5
      }
    ],
    "type": "column",
    "flex": 0.20626959247648904
  },
  {
    "children": [
      {
        "children": [
          {
            "name": "场景",
            "component": "widgetScene",
            "close": false,
            "pop": false
          },
          {
            "name": "组件详情",
            "component": "widgetComponentInfo",
            "close": true,
            "pop": true
          },
          {
            "name": "页面设置",
            "component": "widgetPageInfo",
            "close": true,
            "pop": true
          }
        ],
        "type": "panel",
        "flex": 1
      }
    ],
    "type": "column",
    "flex": 0.5512481056767048
  },
  {
    "children": [
      {
        "children": [
          {
            "name": "属性",
            "component": "widgetAttribute",
            "close": false,
            "pop": true
          },
          {
            "name": "样式",
            "component": "widgetStyleEditor",
            "close": false,
            "pop": true
          },
          {
            "name": "脚本",
            "component": "widgetScriptEditor",
            "style": {
              "width": "300px",
              "height": "400px",
              "left": "300px",
              "top": "300px"
            },
            "close": true,
            "pop": true
          }
        ],
        "type": "panel",
        "flex": 0.7888643880926131
      },
      {
        "children": [
          {
            "name": "动画",
            "component": "widgetAnimate",
            "close": true,
            "pop": true
          }
        ],
        "type": "panel",
        "flex": 0.211135611907387
      }
    ],
    "type": "column",
    "flex": 0.2424823018468062
  }
]

小笔误更正

码良现状
码良发布于2018年3月初,截止2020年13月目前已经支撑运满满3500多个活动页面。

应该是2020年3月吧。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.