基于react-bootstrap的0.32.1版本。
eslint
extends
eslint-config-airbnb
使用了基于airbnb的js代码风格,详细了解:
prettier
格式化代码,使代码风格统一,详细了解:
plugins
eslint-plugin-import:帮助校验是否正确导入模块
eslint-plugin-jsx-a11y:帮助校验React属性是否支持
eslint-plugin-prettier:prettier的eslint插件
eslint-plugin-react:React校验规则插件
babel插件
babel-plugin-transform-class-properties:转换class属性,如实例属性、类静态属性
babel-plugin-add-module-exports:省去
require('module').default
中的default
babel-plugin-transform-export-extensions:支持
export * as ns from 'mod'
和export v from 'mod';
语法babel-plugin-transform-runtime:使用
babel-runtime
替换,免去引用babel-polyfill
造成的全局变量污染
参考文章:
preset
babel-preset-env
感觉挺有用的第三方模块
参考网址:
colors:很容易设置颜色
cross-env:解决跨平台命令问题
enzyme:测试React
fs-extra:为原生的
fs
模块添加promise
支持husky:Git hooks made easy
sinon:Standalone test spies, stubs and mocks for JavaScript. Works with any unit testing framework.
invariant:在开发环境下提示错误的快速写法
warning:facebook的warning,快速写警告
keycode:在键盘键码和键名之间进行转换,反之亦然
用到的测试框架
React好像推荐的是Jest
框架,这个有待了解
编译提供的选择
dist:使用
webpack
提供的webpack
方法进行编译;lib:使用
babel
的transform
方法编译;es:使用
babel
的transform
方法编译,和lib
方法不同的是少了一个babel-plugin-add-module-exports
插件;(这个文件应该没什么用吧,现在浏览器支持率这么低)bower:复制
dist
文件夹
用到的一些JS语法
柯里化函数:
async/await:
React获取子组件或父组件属性:
使用yarn替换npm
运行yarn
命令
忽略一些文件当别人安装时
通过制定package.json
的files
字段,或者也可以制定.npmignore
。以下文件一定会包含:
package.json
README
CHANGES / CHANGELOG / HISTORY
LICENSE / LICENCE
NOTICE
main
字段指定的文件
相反,以下文件总会被忽略:
.git
CVS
.svn
.hg
.lock-wscript
.wafpickle-N
.*.swp
.DS_Store
._*
npm-debug.log
.npmrc
node_modules
config.gypi
*.orig
package-lock.json (use shrinkwrap instead)
在webstrom中使用eslint校验
先安装eslint插件,配置Eslint Plugin
:
然后打开file/settings/Keymap
,搜索ESlint找到Fix ESLint Problems
,右击选择Add Keyboard Shortcut
, 键入ctrl + e
(这里看个人习惯)
gatsby
报错:RootQueryType.allSitePage field type must be Output Type but got: SitePageConnection.
运行yarn list gatsby
发现会有多个依赖:
1 | npm remove graphql |
要统一一个版本的gatsby
报错"jsonName" of undefined
目录中不能包含中文目录
Error: Schema must contain unique named types but contains multiple types named “JSON”
有时候要删除.cache
文件并重启才能生效,不知道为什么???
hexo d -g报错[Windows] bash: /dev/tty: No such a device or address
Try adding this into your git config1
2[credential]
helper = wincred
or via console
1 | git config --global credential.helper wincred |
shareui文档构建
首先在根目录下运行脚手架:
1 | gatsby new doc |
然后修改gatsby的配置:
1 | const path = require("path"); |
使用gatsby-source-filesystem
可以方便查询本地文件的相关信息;使用gatsby-transformer-react-docgen
方便查询组件信息。
在src/pages
目录下新建alert.js
(会自动生成alert页面):
1 | import React from "react"; |
其中的片段PropTable_metadata
如下:
1 | export const metadataFragment = graphql` |
为了列出所有的组件,我们使用gatsby-source-filesystem
查询出在src目录下的所有组件,并添加到首页(doc/src/index.js
):
1 | import React from "react"; |
读取组件的注释:
1 | /** |
之后通过data.componentMetadata.description
字段即可获取。
属性注释会报错
Error: Schema must contain unique named types but contains multiple types named “JSON”
,暂时不知道为什么