我的GitHub
0%

流程图

流程图

概念

房间号:房间号是基于声网appid命名空间的,同一个appid下的房间号如果存在会加入,不存在则直接创建

uid:可使用下面的组件中提供的组件中的utils获取,本质是基于时间生成的各不相同,也可以根据我们的业务自定义产生,比如直接使用用户id

集成

组件下载地址
集成步骤可查看readme

注意事项

微信基础库 1.7.0 开始支持,低版本需做兼容处理。

微信需要配置域名

阅读全文 »

homebrew不多说,java8也不多说。
brew安装不上java8的例子太多了。
最后的做法无非这么几个,安装openjdk版本,或者安装其他的版本,或者直接去官网装。

我今天就要硬装!就要用brew硬装官网版本的java8!

一.安装报错

1
brew cask install homebrew/cask-versions/java8

执行这个,然后肯定报错
1.png

1
Error: Cask 'java8' is unavailable: '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-versions/Casks/java8.rb' does not exist.

也就是这个玩意

二.添加java8.rb

注意到上面报错的地址了没,说的是你文件夹下没有java8.rb这个文件

让我们打开github之这个老姐删掉了java8.rb

阅读全文 »

先说点老生常谈的问题

啥是跨域

1.同源策略

要了解跨域,先要说说同源策略。同源策略是由 Netscape 公司提出的一个著名的安全策略,所有支持 JavaScript 的浏览器都会使用这个策略。所谓同源是指,域名,协议,端口相同。当页面在执行一个脚本时会检查访问的资源是否同源,如果非同源,那么在请求数据时,浏览器会在控制台中报一个异常,提示拒绝访问。

同源策略一般又分为以下两种:

DOM同源策略:禁止对不同源页面DOM进行操作。这里主要场景是iframe跨域的情况,不同域名的iframe是限制互相访问的。XmlHttpRequest同源策略:禁止使用XHR对象向不同源的服务器地址发起HTTP请求。

2.什么是跨域?

跨域,指的是从一个域名去请求另外一个域名的资源。即跨域名请求!跨域时,浏览器不能执行其他域名网站的脚本,是由浏览器的同源策略造成的,是浏览器施加的安全限制。

跨域的严格一点来说就是只要协议,域名,端口有任何一个的不同,就被当作是跨域。

好了,我们得出结论:1.跨域只在浏览器中会出现2.协议,域名,端口任一不同就会出现跨域

阅读全文 »

背景

线上报错,啥也不知道,无法复现束手无策,客户开喷,研发背锅

这种事情,u1s1,大家都遇到过吧

解决方式就是有个日志收集上报的地方去查,查什么时候,什么时间,什么环境,出了什么错误,在某些程度能不那么被动

选型

是不是以为我是要说用哪家,实际上是准备自己写。。

免费的不放心,付费的买不起
但这里还是列出几家
fundebug
sentry

怎么做?

1.了解需要采集的指标
2.收集的方式
3.上报的方式
4.上报的时机
5.如何解析
6.告警

1.了解需要采集的数据指标

阅读全文 »

为什么要引入

一开始我想的是,可能多人多项目开发,把组件展示出来,避免重复造轮子

但后来想想,好像除了展示,没什么其他用处

两个项目如果要用同一个样式的组件,如果没有单独抽出组件库,还是得复制粘贴,用处不大

只能说做组件库的同学用这个比较好用。

还有一个自动化测试的好处(不过我从来没写过测试,暂时还无法体会这个好处)

还有其他用处的话,麻烦老哥们留言区告诉我

如何引入

1
2
cd 项目目录下
npx -p @storybook/cli sb init

会拉一些依赖,并新建两个文件夹

阅读全文 »

其实标题起的有点大,主要是使用shell中的&和wait这两个命令。

运维大佬不要嘲笑。

无星的前端之旅(四)——小程序持续集成前面介绍了背景,我们有一套代码要发40多个客户的小程序主体。

在Jenkins中加shell去完成上传开发版这个操作。但是需要进行多参数化配置,换句话说就是40多家客户我们要打40多个包,分别上传。

shell的执行方式是,前面执行完了,我们才能执行下一个命令。

因此如果我们打一个包并上传的时间是1分钟,那40家就是40分钟。这谁顶得住啊。

所以需要考虑如何压缩这个打包上传时间,能不能同时打包,同时上传。

原本的shell如下,变量我就写中文代替了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function npminstall(){
echo "拉依赖"
cd 代码文件夹下
npm install
}
function buildwx(){
echo "执行构建"
# echo '环境:'$1
# echo '文件名:'$2
# echo '客户名:'$3
npx cross-env 环境=$1 文件名=$2 客户名=$3 node build/build.js wx
}
function upload(){
echo "执行上传"
# echo '文件名:'$1
# echo 'appid:'$2
# echo 'version:'$3
npx miniprogram-ci upload --pp ./dist/${1}/wx --pkp ./privatekey/private.${2}.key --appid ${2} --uv ${3} -r 1 --enable-es6 true
}
#------------------待构建配置------------------
configs=(
"xxx客户;xxx环境;xxx文件名;xxxxappid"
"xxx客户;xxx环境;xxx文件名;xxxxappid"
)
##读取version变量
version=‘xxx文件读取’
#------------------执行批量构建------------------
npminstall
for xxx in ${configs[@]};do
客户名=`echo ${xxx} | awk -F ";" '{print $1}'`
环境=`echo ${xxx} | awk -F ";" '{print $2}'`
文件名=`echo ${xxx} | awk -F ";" '{print $3}'`
appid=`echo ${xxx} | awk -F ";" '{print $4}'`
buildwx ${环境} ${文件名} ${客户名}
upload ${文件名} ${appid} ${version}
echo "$客户名 上传完毕"
done

就是一个简单的for循环,根据配置信息批量打包。40多家就是40分钟。

阅读全文 »

背景

刚刚跑路到一家新公司。新公司的前端小改改负责开发小程序,为四十多家客户服务,而且是他们的账号主体。

换句话说,一套代码,要切换多个 appid 去打包上传多个小程序账号发布。

所以每次发布,同事都切来切去,麻烦的一批,疲于奔命。

因此需要做一套自动部署,将开发从这个上面解放出来,让运营/实施去完成这个发布操作,开发只需要专注于代码开发即可。

技术选型

这里分为两个技术选型。

一.小程序的支持方式选型

小程序的官网可以看到,他们支持三种方式

命令行 V2

阅读全文 »

作为前端开发工程师,希望搭建一些基础设置,cli是必不可少的一项。

至于cli如何制作,文章一大堆,相信网上大家都能搜到。

但是cli工具如何debug,我查了2天,都没查到。

我用的开发工具是vscode。虽然我知道答案一定在
VSCode调试NodeJS调试入门中,但我天资愚钝,不知道如何融合起来。

不过天不亡我,最终还是找到了解决方式。

不多bb,直接上代码和截图。

方式一

1.新增vscode的launch选项卡

1

抄就完事了,注意端口号,是根据后续产生的端口号去填写,可以先填一个。

阅读全文 »

有一说一,在国内上传app到App Store,用transport上传,我打赌你肯定见过这个页面,这个正在验证能卡几个钟头。

“正在验证App-正在通过App Store进行认证…”

1.png

终于在stackoverflow这里找到了答案(不是最高票那个)。

2.png

3.png

真的🐂🍺。

所以你要做的操作就是

1.删除该缓存文件夹(删之前你可以看看是多大,我这是2.5M)

1
/Users/your_user_name/Library/Caches/com.apple.amp.itmstransporter/
阅读全文 »

背景:

最近在写vue,使用的是nuxt框架做ssr。css属实有点难搞,ui又想让我做动画,说要好看,要酷,要炫。属实有点要命。

没办法,我只能搪塞到:“你看看lottie,这个比较简单,比较方便,我也不用写很多代码,你也能看到你想要的效果”。当时UI就答应了,表示回去研究研究。

其实我也没用过,当时想的是,等你研究完估计就得明年了。谁知道不到两个星期,ae就导出json就给我了,怎么效率这么高。。。

一.引入lottie

看了半天,怎么都说用vue-lottie,这玩意也不是官方的拓展啊,莫名觉得心里不靠谱,不太想用(写rn的时候也是,想用echarts,发现没有,只好自己桥接了一个)。再看看,官方不是有lottie-web么,用就完事了。

1
yarn add lottie-web

引入完毕

二.纯json使用

属实简单,但是这里有些不一样的地方。先上代码,style我直接省略了。

阅读全文 »