(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
require('shelljs/global'); | |
var crypto = require('crypto'); | |
var stat = require('fs').statSync; | |
var join = require('path').join; | |
var dirname = require('path').dirname; | |
var readFile = require('fs').readFileSync; | |
var dir = join(__dirname, '../spmjs.io/data/repository'); | |
cd(dir); |
# the path where screenshots to save | |
SS_PATH="/tmp" | |
# if you want to save them to your desktop, SS_PATH should be "/Users/YOURNAME/Desktop" | |
# a variable of unix timestamp for screenshot file name | |
NOW=$(date +%s) | |
# execute screen capture command, screenshot$NOW.png is the name of file | |
screencapture -i -r $SS_PATH/[email protected] | |
// Use Gists to store code you would like to remember later on | |
console.log(window); // log the "window" object to the console |
127.0.0.1, yyets.com, *.yyets.com, letvcdn.com, *.letvcdn.com, atatech.org, *.atatech.org, suning.com, *.suning.com, ku6.com, *.ku6.com, donews.com, *.donews.com, goodbabygroup.com, *.goodbabygroup.com, elong.com, *.elong.com, 56img.com, *.56img.com, alibaba.com, *.alibaba.com, lm.licenses.adobe.com, *.lm.licenses.adobe.com, paypalobjects.com, *.paypalobjects.com, acfun.tv, *.acfun.tv, 115img.com, *.115img.com, jandan.net, *.jandan.net, huanqiu.com, *.huanqiu.com, xiami.com, *.xiami.com, weiphone.net, *.weiphone.net, sogou.com, *.sogou.com, yhd.com, *.yhd.com, csdn.net, *.csdn.net, youku.com, *.youku.com, allyes.com, *.allyes.com, 51.la, *.51.la, chinaz.com, *.chinaz.com, highbd.net, *.highbd.net, iciba.com, *.iciba.com, 265.com, *.265.com, 39.net, *.39.net, synacast.com, *.synacast.com, emarbox.com, *.emarbox.com, tgbus.com, *.tgbus.com, zhaopin.com, *.zhaopin.com, chinamobile.com, *.chinamobile.com, lashouimg.com, *.lashouimg.com, gamersky.com, *.gamersky.com, caing.com, *.caing.com, jiathis.com, *.jiathis. |
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.
{ | |
"models": { | |
"list": [ | |
{ | |
"reducers": [ | |
"Reducer^^./a/c.js^^add", | |
"Reducer^^./a/c.js^^minus" | |
], | |
"effects": [ | |
"Effect^^./a/c.js^^addRemote" |
import firebase from 'firebase'; | |
const config = { | |
apiKey: "AIzaSyCm9ablmomM4Y34LJYjzd92G9nzpkLnvKQ", | |
authDomain: "dva-workshop.firebaseapp.com", | |
databaseURL: "https://dva-workshop.firebaseio.com", | |
storageBucket: "dva-workshop.appspot.com", | |
}; | |
firebase.initializeApp(config); | |
const database = firebase.database(); |
{ | |
"darwin-x64-prod": { | |
"readme": "Second Release", | |
"update": "https://github.com/megahertz/electron-simple-updater/releases/download/darwin-x64-prod-v0.0.2/release.json", | |
"install": "https://github.com/megahertz/electron-simple-updater/releases/download/darwin-x64-prod-v0.0.2/Simple.Updater.Example-0.0.2.dmg", | |
"version": "0.2.2" | |
} | |
} |
https://umijs.org/,中文可发音为乌米,是一个可插拔的企业级 react 应用框架。umi 以路由为基础的,支持类 next.js 的约定式路由,以及各种进阶的路由功能,并以此进行功能扩展,比如支持路由级的按需加载。然后配以完善的插件体系,覆盖从源码到构建产物的每个生命周期,支持各种功能扩展和业务需求,目前内外部加起来已有 50+ 的插件。
umi 是蚂蚁金服的底层前端框架,已直接或间接地服务了数百个应用,包括 java、node、H5 无线、离线(Hybrid)应用、纯前端 assets 应用、CMS 应用等。他已经很好地服务了我们的内部用户,同时希望他也能服务好外部用户。
他包含以下特性:
const assert = require('assert'); | |
const { basename, dirname } = require('path'); | |
const fg = require('fast-glob'); | |
const getRoutes = async (opts) => { | |
// e.g. ['a/a.route.jsx', 'b/b.route.jsx', 'a.c/b.route.jsx'] | |
const files = await fg(['*/*.route.jsx'], { | |
cwd: opts.baseDir, | |
}); | |
return getRoutesByFiles({ |