白凡
白凡
异常类型:编译异常 Robust版本:0.4.7 Gradle版本:2.2.3 系统:Mac 堆栈/日志: 日志报错日下 ``` * Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithAutoPatchTransformForRelease'. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:84) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88) at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)...
# redux 源码分析 ## 背景 在之前的文章[Redux从入门到实践](https://juejin.im/post/5c0e3ff6f265da61553aa8b6)当中对redux的使用进行了说明,这次就来看下它的源码,从而进一步的熟悉它。 ## 构建 相关git地址 ```js git clone https://github.com/reduxjs/redux.git ``` 构建文档是`CONTRBUTING.md` ## package.json ```js "main": "lib/redux.js", // ... "scripts": { "clean": "rimraf lib dist es coverage",...
## 前言 在日常使用github中,除了利用git进行项目版本控制之外,最多的用处就是游览各式的项目,在看到一些有趣或者有用的项目之后,我们通常就会顺手star,目的是日后再看。但是当我们star了许多项目之后,回过头想找一个的项目就会发现,很难在短时间内找到它,官方也并没有提供很好的管理我们的star项目的功能,因此在市面上也出现了一些对star进行管理的工具,比如说 [astralapp](https://app.astralapp.com/auth),Star Order等等,其实github的接口api都是开放的,我们完全可以自己构建一个属于自己的项目管理工具。公司的前端技术栈是React,而笔者之前使用的是Vue,因此正好想利用github的open api 自己构建个react的github star管理项目来加深react的使用。而大体功能我们就模仿astralapp。 ## github open api 官方文档有v3和v4,2个版本,v3是Restful,v4是GraphQL,在这里我们使用的是v3版 ### v3 使用的是restful 协议 服务器地址 ``` https://api.github.com ``` 在无token情况下使用github的api,每分钟限制是60次请求,考虑到想完整的使用github的api,因此选择构建一个[web application](https://github.com/settings/applications/new),授权OAuth应用程序的流程可以参照[官方文档](https://developer.github.com/apps/building-oauth-apps/authorizing-oauth-apps/#authorizing-oauth-apps)。在这里,就简单的说一下这个流程。 ### 授权OAuth2.0 的流程 github OAuth的授权模式为授权码模式,对OAuth不了解的同学可以具体看阮一峰老师的[理解OAuth 2.0](http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html) 要做的流程主要分为3步...
## 前言 在最近做项目的时候,项目部署到线上之后,出现了一种**明明开发环境就可以,为什么到了生成环境就不可以**的问题。出现该问题的根本原因还是对路径的引用上出现了错误。 我们通常会引用本地文件资源包括 - 图片 - js文件 - css文件 - web页面 - 等等 在引用文件时,普遍是2种,相对路径和绝对路径 ## 相对路径和绝对路径 ### 相对路径 在[w3cschools](https://www.w3schools.com/html/html_filepaths.asp)有这样一个表格来描述文件路径。 |路径|说明| |---|---| |``|`picture.jpg`在与当前文件位于相同目录| |``|`picture.jpg`在相同目录中的images文件夹内| |`
## React 中 ### 本地调试React代码的方法 - 先将React代码下载到本地,进入项目文件夹后`yarn build` - 利用create-react-app创建一个自己的项目 - 把react源码和自己刚刚创建的项目关联起来,之前build源码到build文件夹下面,然后cd到react文件夹下面的build文件夹下。里面有node_modules文件夹,进入此文件夹。发现有react文件夹和react-dom文件夹。分别进入到这两个文件夹。分别运行yarn link。此时创建了两个快捷方式。react和react-dom - cd到自己项目的目录下,运行yarn link react react-dom 。此时在你项目里就使用了react源码下的build的相关文件。如果你对react源码有修改,就刷新下项目,就能里面体现在你的项目里。 ### 场景 假设有这样一个场景,父组件传递子组件一个A参数,子组件需要监听A参数的变化转换为state。 ### 16之前 在React以前我们可以使用`componentWillReveiveProps`来监听`props`的变换 ### 16之后 在最新版本的React中可以使用新出的`getDerivedStateFromProps`进行props的监听,`getDerivedStateFromProps`可以返回`null`或者一个对象,如果是对象,则会更新`state` ### getDerivedStateFromProps触发条件...
## 背景 在平时工作中会有遇到许多以相同模板定制的小程序,因此想自己建立一个生成模板的脚手架工具,以模板为基础构建对应的小程序,而平时的小程序都是用mpvue框架来写的,因此首先先参考一下Vue-cli的原理。知道原理之后,再定制自己的模板脚手架肯定是事半功倍的。 --- 在说代码之前我们首先回顾一下Vue-cli的使用,我们通常使用的是webpack模板包,输入的是以下代码。 ```js vue init webpack [project-name] ``` 在执行这段代码之后,系统会自动下载模板包,随后会询问我们一些问题,比如模板名称,作者,是否需要使用eslint,使用npm或者yarn进行构建等等,当所有问题我们回答之后,就开始生成脚手架项目。 我们将源码下载下来,源码仓库点击[这里][1],平时用的脚手架还是2.0版本,要注意,默认的分支是在dev上,dev上是3.0版本。 我们首先看一下package.json,在文件当中有这么一段话 ```json { "bin": { "vue": "bin/vue", "vue-init": "bin/vue-init", "vue-list": "bin/vue-list" } } ``` 由此可见,我们使用的命令 `vue init`,应该是来自`bin/vue-init`这个文件,我们接下来看一下这个文件中的内容...