@uyun/udap-sync-job
同步任务
Last updated 3 years ago by vis .
MIT · Repository ·
$ cnpm install @uyun/udap-sync-job 
Private package

如何使用 React Hooks 构建一个 React 待办事项应用程序

在本教程中,您将创建一个待办事项应用程序。 您的应用程序将需要显示任务、添加新任务、将任务标记为完成以及删除任务。 这些操作将涉及 CRUD(创建、读取、更新和删除)应用程序的四个方面。

这种类型的项目通常使用 Class 组件来完成,但是这个应用程序将集成 React Hooks。 React Hooks 允许功能组件具有状态并使用生命周期方法,允许您避免使用 Class 组件并拥有更多模块化和可读性的代码。

Step 1 - 创建组件包

首先, 您需要创建一个组件包,在您的终端窗口中, 导航到您希望新应用程序所在的位置,然后键入:

yarn create:package react-todo

接下来执行 yarn install 将我们的包软连接到程序所在的位置的 node_modules

yarn install

然后,运行项目:

实时监听组件包 packages 的变化

yarn start

使用 cypress 查看组件包运行结果

yarn cypress:open-ct

使用 storybook 查看组件案例运行结果

yarn storybook

Step 2 - 发布组件包

将组件发布到 npm 仓库中, 在这里我们使用 verdaccio 搭建一个私有 npm 仓库测试

在控制台使用 verdaccio 启动私有仓库

verdaccio

接下来使用 npm 注册账号

npm adduser --registry http://localhost:4873

然后在控制台中使用 commitizen lerna 发布组件

git add .

使用 commitizen 代替 git commit

yarn commit

发布组件包

yarn lerna:publish

Step 3 - 完成 todo-list 初版代码

参考文章

最终会得到如下代码

import React from "react";
import "./App.css";

function Todo({ todo, index, completeTodo, removeTodo }) {
  return (
    <div
      className="todo"
      style={{ textDecoration: todo.isCompleted ? "line-through" : "" }}
    >
      {todo.text}
      <div>
        <button onClick={() => completeTodo(index)}>Complete</button>
        <button onClick={() => removeTodo(index)}>x</button>
      </div>
    </div>
  );
}

function TodoForm({ addTodo }) {
  const [value, setValue] = React.useState("");

  const handleSubmit = (e) => {
    e.preventDefault();
    if (!value) return;
    addTodo(value);
    setValue("");
  };

  return (
    <form onSubmit={handleSubmit}>
      <input
        type="text"
        className="input"
        value={value}
        onChange={(e) => setValue(e.target.value)}
      />
    </form>
  );
}

function App() {
  const [todos, setTodos] = React.useState([
    {
      text: "Learn about React",
      isCompleted: false,
    },
    {
      text: "Meet friend for lunch",
      isCompleted: false,
    },
    {
      text: "Build really cool todo app",
      isCompleted: false,
    },
  ]);

  const addTodo = (text) => {
    const newTodos = [...todos, { text }];
    setTodos(newTodos);
  };

  const completeTodo = (index) => {
    const newTodos = [...todos];
    newTodos[index].isCompleted = true;
    setTodos(newTodos);
  };

  const removeTodo = (index) => {
    const newTodos = [...todos];
    newTodos.splice(index, 1);
    setTodos(newTodos);
  };

  return (
    <div className="app">
      <div className="todo-list">
        {todos.map((todo, index) => (
          <Todo
            key={index}
            index={index}
            todo={todo}
            completeTodo={completeTodo}
            removeTodo={removeTodo}
          />
        ))}
        <TodoForm addTodo={addTodo} />
      </div>
    </div>
  );
}

export default App;
.app {
  background: #209cee;
  height: 100vh;
  padding: 30px;
}

.todo-list {
  background: #e8e8e8;
  border-radius: 4px;
  max-width: 400px;
  padding: 5px;
}

.todo {
  align-items: center;
  background: #fff;
  border-radius: 3px;
  box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.15);
  display: flex;
  font-size: 12px;
  justify-content: space-between;
  margin-bottom: 6px;
  padding: 3px 10px;
}

使用 Typescript 将如上代码整理到文件夹中

packages/react-todo/src/components/ReactTodo.tsx

import React, { useState } from "react";
import styles from "../styles.module.less";
import { TodoForm, TodoFormProps } from "./TodoForm";
import { Todo, TodoProps, TodoItem } from "./Todo";

export function ReactTodo() {
  const [todos, setTodos] = useState<TodoItem[]>([
    {
      text: "Learn about React",
      isCompleted: false,
    },
    {
      text: "Meet friend for lunch",
      isCompleted: false,
    },
    {
      text: "Build really cool todo app",
      isCompleted: false,
    },
  ]);

  const addTodo: TodoFormProps["addTodo"] = (text) => {
    const newTodos = [...todos, { text }];
    setTodos(newTodos);
  };

  const completeTodo: TodoProps["completeTodo"] = (index) => {
    const newTodos = [...todos];
    newTodos[index].isCompleted = true;
    setTodos(newTodos);
  };

  const removeTodo: TodoProps["removeTodo"] = (index) => {
    const newTodos = [...todos];
    newTodos.splice(index, 1);
    setTodos(newTodos);
  };

  return (
    <div className={styles.app}>
      <div className={styles["app-list"]}>
        {todos.map((todo, index) => (
          <Todo
            key={index}
            index={index}
            todo={todo}
            completeTodo={completeTodo}
            removeTodo={removeTodo}
          />
        ))}
        <TodoForm addTodo={addTodo} />
      </div>
    </div>
  );
}

packages/react-todo/src/components/TodoForm.tsx

import React from "react";

export interface TodoFormProps {
  addTodo: (value: string) => void;
}

export function TodoForm({ addTodo }: TodoFormProps) {
  const [value, setValue] = React.useState("");

  return (
    <form
      onSubmit={(e) => {
        e.preventDefault();
        if (!value) return;
        addTodo(value);
        setValue("");
      }}
    >
      <input
        type="text"
        className="input"
        value={value}
        onChange={(e) => setValue(e.target.value)}
      />
    </form>
  );
}

packages/react-todo/src/components/Todo.tsx

import React from "react";
import styles from "../styles.module.less";

export interface TodoItem {
  text: string;
  isCompleted?: boolean;
}

export interface TodoProps {
  todo: TodoItem;
  index: number;
  completeTodo: (index: number) => void;
  removeTodo: (index: number) => void;
}

export function Todo({ todo, index, completeTodo, removeTodo }: TodoProps) {
  return (
    <div
      className={styles.todo}
      style={{ textDecoration: todo.isCompleted ? "line-through" : "" }}
    >
      {todo.text}
      <div>
        <button onClick={() => completeTodo(index)}>Complete</button>
        <button onClick={() => removeTodo(index)}>x</button>
      </div>
    </div>
  );
}

修改测试文件 stories/__test__/ReactTodo.spec.tsx

/// <reference types="cypress" />

import * as React from "react";
import { mount } from "@cypress/react";
import { ReactTodo } from "@uyun/react-todo";
import "@uyun/components/dist/index.css";
import "@uyun/react-todo/dist/index.css";

it("渲染", () => {
  mount(<ReactTodo />);
});

it("添加", () => {
  mount(<ReactTodo />);
  cy.get(".input").type("测试").should("have.value", "测试").type("{enter}");
});

it("完成", () => {
  mount(<ReactTodo />);
  cy.get(":nth-child(3) > div > :nth-child(2)").click();
});

it("删除", () => {
  mount(<ReactTodo />);
  cy.get(":nth-child(3) > div > :nth-child(2)").click();
});

Step 4 使用上下文方式来做 CRUD

packages/react-todo/src/hooks/useTodoImpl.ts

import { useState } from "react";

export interface TodoItem {
  text: string;
  isCompleted?: boolean;
}

export function useTodoImpl() {
  const [todos, setTodos] = useState<TodoItem[]>([
    {
      text: "Learn about React",
      isCompleted: false,
    },
    {
      text: "Meet friend for lunch",
      isCompleted: false,
    },
    {
      text: "Build really cool todo app",
      isCompleted: false,
    },
  ]);

  const addTodo = (text: string) => {
    const newTodos = [...todos, { text }];
    setTodos(newTodos);
  };

  const completeTodo = (index: number) => {
    const newTodos = [...todos];
    newTodos[index].isCompleted = true;
    setTodos(newTodos);
  };

  const removeTodo = (index: number) => {
    const newTodos = [...todos];
    newTodos.splice(index, 1);
    setTodos(newTodos);
  };

  return {
    todos,
    addTodo,
    completeTodo,
    removeTodo,
  };
}

packages/react-todo/src/components/ReactTodo.tsx

import React from "react";
import styles from "../styles.module.less";
import { TodoForm } from "./TodoForm";
import { Todo } from "./Todo";
import { TodoProvider } from "../hooks";
import { useTodoImpl } from "../hooks/useTodoImpl";

export function ReactTodo({ useTodo = useTodoImpl }) {
  const value = useTodo();

  return (
    <TodoProvider value={value}>
      <div className={styles.app}>
        <div className={styles["app-list"]}>
          {value.todos.map((todo, index) => (
            <Todo key={index} index={index} todo={todo} />
          ))}
          <TodoForm />
        </div>
      </div>
    </TodoProvider>
  );
}

packages/react-todo/src/components/TodoForm.tsx

import React from "react";
import { useTodo } from "../hooks";

export function TodoForm() {
  const [value, setValue] = React.useState("");
  const { addTodo } = useTodo();

  return (
    <form
      onSubmit={(e) => {
        e.preventDefault();
        if (!value) return;
        addTodo(value);
        setValue("");
      }}
    >
      <input
        type="text"
        className="input"
        value={value}
        onChange={(e) => setValue(e.target.value)}
      />
    </form>
  );
}

packages/react-todo/src/components/Todo.tsx

import React from "react";
import styles from "../styles.module.less";
import { useTodo } from "../hooks";
import type { TodoItem } from "./../hooks/useTodoImpl";

export interface TodoProps {
  todo: TodoItem;
  index: number;
}

export function Todo({ todo, index }: TodoProps) {
  const { completeTodo, removeTodo } = useTodo();
  return (
    <div
      className={styles.todo}
      style={{ textDecoration: todo.isCompleted ? "line-through" : "" }}
    >
      {todo.text}
      <div>
        <button onClick={() => completeTodo(index)}>Complete</button>
        <button onClick={() => removeTodo(index)}>x</button>
      </div>
    </div>
  );
}

修改测试文件

stories/react-todo/MyReactTodo.tsx

import { useState } from "react";
import { ReactTodo } from "@uyun/react-todo";
import React from "react";

export interface TodoItem {
  text: string;
  isCompleted?: boolean;
}

function useTodoImpl() {
  const [todos, setTodos] = useState<TodoItem[]>([
    {
      text: "12313",
      isCompleted: false,
    },
    {
      text: "55555",
      isCompleted: false,
    },
    {
      text: "66666",
      isCompleted: false,
    },
  ]);

  const addTodo = (text: string) => {
    const newTodos = [...todos, { text: text + "的加强王权" }];
    setTodos(newTodos);
  };

  const completeTodo = (index: number) => {
    const newTodos = [...todos];
    newTodos[index].isCompleted = true;
    setTodos(newTodos);
  };

  const removeTodo = (index: number) => {
    const newTodos = [...todos];
    newTodos.splice(index, 1);
    setTodos(newTodos);
  };

  return {
    todos,
    addTodo,
    completeTodo,
    removeTodo,
  };
}

export function MyReactTodo() {
  return <ReactTodo useTodo={useTodoImpl} />;
}

stories/__test__/ReactTodo.spec.tsx

/// <reference types="cypress" />

import * as React from "react";
import { mount } from "@cypress/react";
import { ReactTodo } from "@uyun/react-todo";
import { MyReactTodo } from "../react-todo/MyReactTodo";
import "@uyun/components/dist/index.css";
import "@uyun/react-todo/dist/index.css";

it("渲染", () => {
  mount(<ReactTodo />);
});

it("添加", () => {
  mount(<ReactTodo />);
  cy.get(".input").type("测试").should("have.value", "测试").type("{enter}");
});

it("完成", () => {
  mount(<ReactTodo />);
  cy.get(":nth-child(3) > div > :nth-child(2)").click();
});

it("删除", () => {
  mount(<ReactTodo />);
  cy.get(":nth-child(3) > div > :nth-child(2)").click();
});

describe("自定义 Hooks 来控制 todo-list 中的 Actions", () => {
  it("渲染", () => {
    mount(<MyReactTodo />);
  });

  it("添加", () => {
    mount(<MyReactTodo />);
    cy.get(".input").type("测试").should("have.value", "测试").type("{enter}");
  });

  it("完成", () => {
    mount(<MyReactTodo />);
    cy.get(":nth-child(3) > div > :nth-child(2)").click();
  });

  it("删除", () => {
    mount(<MyReactTodo />);
    cy.get(":nth-child(3) > div > :nth-child(2)").click();
  });
});

stories/react-todo/MyReactTodo.tsx

import { useState } from "react";
import { ReactTodo } from "@uyun/react-todo";
import React from "react";

export interface TodoItem {
  text: string;
  isCompleted?: boolean;
}

function useTodoImpl() {
  const [todos, setTodos] = useState<TodoItem[]>([
    {
      text: "12313",
      isCompleted: false,
    },
    {
      text: "55555",
      isCompleted: false,
    },
    {
      text: "66666",
      isCompleted: false,
    },
  ]);

  const addTodo = (text: string) => {
    const newTodos = [...todos, { text: text + "的加强王权" }];
    setTodos(newTodos);
  };

  const completeTodo = (index: number) => {
    const newTodos = [...todos];
    newTodos[index].isCompleted = true;
    setTodos(newTodos);
  };

  const removeTodo = (index: number) => {
    const newTodos = [...todos];
    newTodos.splice(index, 1);
    setTodos(newTodos);
  };

  return {
    todos,
    addTodo,
    completeTodo,
    removeTodo,
  };
}

export function MyReactTodo() {
  return <ReactTodo useTodo={useTodoImpl} />;
}

Current Tags

  • 0.8.3                                ...           latest (2 years ago)

390 Versions

  • 0.8.3                                ...           2 years ago
  • 3.4.6                                ...           2 years ago
  • 3.4.5                                ...           2 years ago
  • 3.4.4                                ...           2 years ago
  • 3.4.3                                ...           2 years ago
  • 3.4.1                                ...           2 years ago
  • 3.4.0                                ...           2 years ago
  • 3.3.0                                ...           2 years ago
  • 0.8.2                                ...           2 years ago
  • 3.2.7                                ...           2 years ago
  • 3.2.6                                ...           2 years ago
  • 3.2.5                                ...           2 years ago
  • 3.2.4                                ...           2 years ago
  • 3.2.3                                ...           2 years ago
  • 3.2.2                                ...           2 years ago
  • 3.2.1                                ...           2 years ago
  • 3.1.1                                ...           2 years ago
  • 2.0.0                                ...           2 years ago
  • 0.8.1                                ...           3 years ago
  • 1.0.13                                ...           3 years ago
  • 1.0.12                                ...           3 years ago
  • 1.0.11                                ...           3 years ago
  • 1.0.10                                ...           3 years ago
  • 1.0.9                                ...           3 years ago
  • 1.0.8                                ...           3 years ago
  • 1.0.7                                ...           3 years ago
  • 1.0.5                                ...           3 years ago
  • 1.0.4                                ...           3 years ago
  • 1.0.3                                ...           3 years ago
  • 1.0.2                                ...           3 years ago
  • 1.0.1                                ...           3 years ago
  • 1.0.0                                ...           3 years ago
  • 0.24.0                                ...           3 years ago
  • 0.23.0                                ...           3 years ago
  • 0.22.0                                ...           3 years ago
  • 0.21.0                                ...           3 years ago
  • 0.20.0                                ...           3 years ago
  • 0.19.0                                ...           3 years ago
  • 0.18.0                                ...           3 years ago
  • 0.17.0                                ...           3 years ago
  • 0.16.0                                ...           3 years ago
  • 0.15.0                                ...           3 years ago
  • 0.14.0                                ...           3 years ago
  • 0.13.0                                ...           3 years ago
  • 0.12.0                                ...           3 years ago
  • 0.11.0                                ...           3 years ago
  • 0.10.0                                ...           3 years ago
  • 0.9.0                                ...           3 years ago
  • 0.8.0                                ...           3 years ago
  • 0.7.0                                ...           3 years ago
  • 0.6.48                                ...           3 years ago
  • 0.6.47                                ...           3 years ago
  • 0.6.46                                ...           3 years ago
  • 0.6.45                                ...           3 years ago
  • 0.6.44                                ...           3 years ago
  • 0.6.43                                ...           3 years ago
  • 0.6.42                                ...           3 years ago
  • 0.6.41                                ...           3 years ago
  • 0.6.40                                ...           3 years ago
  • 0.6.39                                ...           3 years ago
  • 0.6.38                                ...           3 years ago
  • 0.6.37                                ...           3 years ago
  • 0.6.36                                ...           3 years ago
  • 0.6.35                                ...           3 years ago
  • 0.6.34                                ...           3 years ago
  • 0.6.33                                ...           3 years ago
  • 0.6.32                                ...           3 years ago
  • 0.5.34                                ...           3 years ago
  • 0.6.31                                ...           3 years ago
  • 0.6.30                                ...           3 years ago
  • 0.5.33                                ...           3 years ago
  • 0.5.32                                ...           3 years ago
  • 0.5.31                                ...           3 years ago
  • 0.5.30                                ...           3 years ago
  • 0.6.29                                ...           3 years ago
  • 0.6.28                                ...           3 years ago
  • 0.6.27                                ...           3 years ago
  • 0.6.26                                ...           3 years ago
  • 0.6.25                                ...           3 years ago
  • 0.6.24                                ...           3 years ago
  • 0.6.23                                ...           3 years ago
  • 0.6.22                                ...           3 years ago
  • 0.6.21                                ...           3 years ago
  • 0.6.20                                ...           3 years ago
  • 0.6.19                                ...           3 years ago
  • 0.6.18                                ...           3 years ago
  • 0.6.17                                ...           3 years ago
  • 0.6.16                                ...           3 years ago
  • 0.6.15                                ...           3 years ago
  • 0.4.51                                ...           3 years ago
  • 0.4.50                                ...           3 years ago
  • 0.4.49                                ...           3 years ago
  • 0.6.14                                ...           3 years ago
  • 0.4.48                                ...           3 years ago
  • 0.5.29                                ...           3 years ago
  • 0.4.47                                ...           3 years ago
  • 0.6.13                                ...           3 years ago
  • 0.6.12                                ...           3 years ago
  • 0.5.28                                ...           3 years ago
  • 0.6.11                                ...           3 years ago
  • 0.6.10                                ...           3 years ago
  • 0.6.9                                ...           3 years ago
  • 0.6.8                                ...           3 years ago
  • 0.6.7                                ...           3 years ago
  • 0.6.6                                ...           3 years ago
  • 0.6.5                                ...           3 years ago
  • 0.4.46                                ...           3 years ago
  • 0.6.4                                ...           3 years ago
  • 0.6.3                                ...           3 years ago
  • 0.6.2                                ...           3 years ago
  • 0.6.1                                ...           3 years ago
  • 0.6.0                                ...           3 years ago
  • 0.5.27                                ...           3 years ago
  • 0.5.26                                ...           3 years ago
  • 0.5.25                                ...           3 years ago
  • 0.4.45                                ...           3 years ago
  • 0.5.24                                ...           3 years ago
  • 0.4.44                                ...           3 years ago
  • 0.4.43                                ...           3 years ago
  • 0.5.23                                ...           3 years ago
  • 0.5.22                                ...           3 years ago
  • 0.5.21                                ...           3 years ago
  • 0.5.20                                ...           3 years ago
  • 0.5.19                                ...           3 years ago
  • 0.5.18                                ...           3 years ago
  • 0.5.17                                ...           3 years ago
  • 0.5.16                                ...           3 years ago
  • 0.5.15                                ...           3 years ago
  • 0.5.14                                ...           3 years ago
  • 0.5.13                                ...           3 years ago
  • 0.3.8-beta.4                                ...           3 years ago
  • 0.5.12                                ...           3 years ago
  • 0.5.11                                ...           3 years ago
  • 0.5.10                                ...           3 years ago
  • 0.5.9                                ...           3 years ago
  • 0.4.42                                ...           3 years ago
  • 0.5.8                                ...           3 years ago
  • 0.5.7                                ...           3 years ago
  • 0.5.6                                ...           3 years ago
  • 0.5.5                                ...           3 years ago
  • 0.5.4                                ...           3 years ago
  • 0.5.3                                ...           3 years ago
  • 0.5.2                                ...           3 years ago
  • 0.4.41                                ...           3 years ago
  • 0.4.40                                ...           3 years ago
  • 0.4.39                                ...           3 years ago
  • 0.4.38                                ...           3 years ago
  • 0.4.37                                ...           3 years ago
  • 0.4.36                                ...           3 years ago
  • 0.4.35                                ...           3 years ago
  • 0.4.34                                ...           3 years ago
  • 0.4.33                                ...           3 years ago
  • 0.4.32                                ...           3 years ago
  • 0.4.31                                ...           3 years ago
  • 0.4.30                                ...           3 years ago
  • 0.4.29                                ...           3 years ago
  • 0.4.28                                ...           3 years ago
  • 0.4.27                                ...           3 years ago
  • 0.4.26                                ...           3 years ago
  • 0.4.25                                ...           3 years ago
  • 0.5.1                                ...           3 years ago
  • 0.4.24                                ...           3 years ago
  • 0.4.23                                ...           3 years ago
  • 0.5.0                                ...           3 years ago
  • 0.4.22                                ...           3 years ago
  • 0.4.21                                ...           3 years ago
  • 0.4.20                                ...           3 years ago
  • 0.4.19                                ...           3 years ago
  • 0.4.18                                ...           3 years ago
  • 0.4.17                                ...           3 years ago
  • 0.4.16                                ...           3 years ago
  • 0.4.15                                ...           3 years ago
  • 0.4.14                                ...           3 years ago
  • 0.4.13                                ...           3 years ago
  • 0.4.12                                ...           3 years ago
  • 0.4.11                                ...           3 years ago
  • 0.4.10                                ...           3 years ago
  • 0.4.9-beta.25                                ...           3 years ago
  • 0.4.9-beta.24                                ...           3 years ago
  • 0.4.9-beta.23                                ...           3 years ago
  • 0.4.9-beta.22                                ...           3 years ago
  • 0.4.9-beta.21                                ...           3 years ago
  • 0.4.9-beta.20                                ...           3 years ago
  • 0.4.9-beta.19                                ...           3 years ago
  • 0.4.9-beta.18                                ...           3 years ago
  • 0.4.9-beta.17                                ...           3 years ago
  • 0.4.9-beta.16                                ...           3 years ago
  • 0.4.9-beta.14                                ...           3 years ago
  • 0.4.9-beta.13                                ...           3 years ago
  • 0.4.9-beta.12                                ...           3 years ago
  • 0.4.9-beta.11                                ...           3 years ago
  • 0.4.9-beta.10                                ...           3 years ago
  • 0.4.9-beta.9                                ...           3 years ago
  • 0.4.9-beta.8                                ...           3 years ago
  • 0.4.9-beta.7                                ...           3 years ago
  • 0.4.9-beta.6                                ...           3 years ago
  • 0.4.9-beta.5                                ...           3 years ago
  • 0.4.9-beta.4                                ...           3 years ago
  • 0.4.9-beta.3                                ...           3 years ago
  • 0.4.9-beta.2                                ...           3 years ago
  • 0.4.9-beta.1                                ...           3 years ago
  • 0.3.8-beta.3                                ...           3 years ago
  • 0.4.9                                ...           3 years ago
  • 0.3.8-beta.2                                ...           3 years ago
  • 0.3.8-beta.1                                ...           3 years ago
  • 0.3.8                                ...           3 years ago
  • 0.3.7-beta.19                                ...           3 years ago
  • 0.3.7-beta.18                                ...           3 years ago
  • 0.3.7-beta.17                                ...           3 years ago
  • 0.3.7-beta.16                                ...           3 years ago
  • 0.3.7-beta.15                                ...           3 years ago
  • 0.3.7-beta.14                                ...           3 years ago
  • 0.3.7-beta.13                                ...           3 years ago
  • 0.3.7-beta.12                                ...           3 years ago
  • 0.3.7-beta.11                                ...           3 years ago
  • 0.3.7-beta.10                                ...           3 years ago
  • 0.3.7-beta.9                                ...           3 years ago
  • 0.3.7-beta.8                                ...           3 years ago
  • 0.3.7-beta.7                                ...           3 years ago
  • 0.3.7-beta.6                                ...           3 years ago
  • 0.3.7-beta.5                                ...           3 years ago
  • 0.3.7-beta.4                                ...           3 years ago
  • 0.3.7-beta.3                                ...           3 years ago
  • 0.3.7-beta.2                                ...           3 years ago
  • 0.3.7-beta.1                                ...           3 years ago
  • 0.3.7                                ...           3 years ago
  • 0.3.6-beta.11                                ...           3 years ago
  • 0.3.6-beta.10                                ...           3 years ago
  • 0.3.6-beta.9                                ...           3 years ago
  • 0.3.6-beta.8                                ...           3 years ago
  • 0.3.6-beta.7                                ...           3 years ago
  • 0.3.6-beta.6                                ...           3 years ago
  • 0.3.6-beta.5                                ...           3 years ago
  • 0.3.6-beta.4                                ...           3 years ago
  • 0.3.6-beta.3                                ...           3 years ago
  • 0.3.6-beta.2                                ...           3 years ago
  • 0.3.6-beta.1                                ...           3 years ago
  • 0.3.6                                ...           3 years ago
  • 0.3.5-beta.10                                ...           3 years ago
  • 0.3.5-beta.9                                ...           3 years ago
  • 0.3.5-beta.8                                ...           3 years ago
  • 0.3.5-beta.7                                ...           3 years ago
  • 0.4.8                                ...           3 years ago
  • 0.3.5-beta.6                                ...           3 years ago
  • 0.3.5-beta.5                                ...           3 years ago
  • 0.3.5-beta.4                                ...           3 years ago
  • 0.3.5-beta.3                                ...           3 years ago
  • 0.3.5-beta.2                                ...           3 years ago
  • 0.3.5-beta.1                                ...           3 years ago
  • 0.4.7                                ...           3 years ago
  • 0.3.5                                ...           3 years ago
  • 0.4.6                                ...           3 years ago
  • 0.4.5                                ...           3 years ago
  • 0.3.4-beta.12                                ...           3 years ago
  • 0.3.4-beta.11                                ...           3 years ago
  • 0.3.4-beta.10                                ...           3 years ago
  • 0.3.4-beta.9                                ...           3 years ago
  • 0.3.4-beta.8                                ...           3 years ago
  • 0.3.4-beta.7                                ...           3 years ago
  • 0.3.4-beta.6                                ...           3 years ago
  • 0.3.4-beta.5                                ...           3 years ago
  • 0.3.4-beta.4                                ...           3 years ago
  • 0.3.4-beta.3                                ...           3 years ago
  • 0.3.4-beta.2                                ...           3 years ago
  • 0.3.4-beta.1                                ...           3 years ago
  • 0.4.4                                ...           3 years ago
  • 0.4.3                                ...           3 years ago
  • 0.4.2                                ...           3 years ago
  • 0.4.1                                ...           3 years ago
  • 0.3.4                                ...           3 years ago
  • 0.4.0                                ...           3 years ago
  • 0.3.3-beta.1                                ...           3 years ago
  • 0.3.3                                ...           3 years ago
  • 0.3.2                                ...           3 years ago
  • 0.3.1-beta.5                                ...           3 years ago
  • 0.3.1-beta.4                                ...           3 years ago
  • 0.3.1-beta.3                                ...           3 years ago
  • 0.3.1-beta.2                                ...           3 years ago
  • 0.3.1-beta.1                                ...           3 years ago
  • 0.2.9-beta.1                                ...           3 years ago
  • 0.3.1                                ...           3 years ago
  • 0.2.9                                ...           3 years ago
  • 0.3.0-beta.11                                ...           3 years ago
  • 0.2.8-beta.5                                ...           3 years ago
  • 0.3.0-beta.10                                ...           3 years ago
  • 0.3.0-beta.9                                ...           3 years ago
  • 0.2.8-beta.4                                ...           3 years ago
  • 0.2.8-beta.3                                ...           3 years ago
  • 0.3.0-beta.8                                ...           3 years ago
  • 0.2.8-beta.2                                ...           3 years ago
  • 0.2.8-beta.1                                ...           3 years ago
  • 0.2.8                                ...           3 years ago
  • 0.3.0-beta.7                                ...           3 years ago
  • 0.3.0-beta.6                                ...           3 years ago
  • 0.3.0-beta.5                                ...           3 years ago
  • 0.2.7-beta.5                                ...           3 years ago
  • 0.3.0-beta.4                                ...           3 years ago
  • 0.3.0-beta.3                                ...           3 years ago
  • 0.3.0-beta.2                                ...           3 years ago
  • 0.3.0-beta.1                                ...           3 years ago
  • 0.3.0                                ...           3 years ago
  • 0.2.7-beta.4                                ...           3 years ago
  • 0.2.7-beta.3                                ...           3 years ago
  • 0.2.7-beta.2                                ...           3 years ago
  • 0.2.7-beta.1                                ...           3 years ago
  • 0.2.7                                ...           3 years ago
  • 0.2.6-beta.1                                ...           3 years ago
  • 0.2.6                                ...           3 years ago
  • 0.2.5-beta.6                                ...           3 years ago
  • 0.2.5-beta.5                                ...           3 years ago
  • 0.2.5-beta.4                                ...           3 years ago
  • 0.2.5-beta.3                                ...           3 years ago
  • 0.2.5-beta.2                                ...           3 years ago
  • 0.2.5-beta.1                                ...           3 years ago
  • 0.2.5                                ...           3 years ago
  • 0.2.4                                ...           3 years ago
  • 0.2.3-beta.26                                ...           3 years ago
  • 0.2.3-beta.25                                ...           3 years ago
  • 0.2.3-beta.24                                ...           3 years ago
  • 0.2.3-beta.23                                ...           3 years ago
  • 0.2.3-beta.22                                ...           3 years ago
  • 0.2.3-beta.21                                ...           3 years ago
  • 0.2.3-beta.20                                ...           3 years ago
  • 0.2.3-beta.19                                ...           3 years ago
  • 0.2.3-beta.18                                ...           3 years ago
  • 0.2.3-beta.17                                ...           3 years ago
  • 0.2.3-beta.16                                ...           3 years ago
  • 0.2.3-beta.15                                ...           3 years ago
  • 0.2.3-beta.14                                ...           3 years ago
  • 0.2.3-beta.13                                ...           3 years ago
  • 0.2.3-beta.12                                ...           3 years ago
  • 0.2.3-beta.11                                ...           3 years ago
  • 0.2.3-beta.10                                ...           3 years ago
  • 0.2.3-beta.9                                ...           3 years ago
  • 0.2.3-beta.8                                ...           3 years ago
  • 0.2.3-beta.7                                ...           3 years ago
  • 0.2.3-beta.6                                ...           3 years ago
  • 0.2.3-beta.5                                ...           3 years ago
  • 0.2.3-beta.4                                ...           3 years ago
  • 0.2.3-beta.3                                ...           3 years ago
  • 0.2.3-beta.2                                ...           3 years ago
  • 0.2.3-beta.1                                ...           3 years ago
  • 0.2.2-beta.20                                ...           3 years ago
  • 0.2.2-beta.19                                ...           3 years ago
  • 0.2.2-beta.18                                ...           3 years ago
  • 0.2.2-beta.17                                ...           3 years ago
  • 0.2.2-beta.16                                ...           3 years ago
  • 0.2.2-beta.15                                ...           3 years ago
  • 0.2.2-beta.14                                ...           3 years ago
  • 0.2.2-beta.13                                ...           3 years ago
  • 0.2.2-beta.12                                ...           3 years ago
  • 0.2.2-beta.11                                ...           3 years ago
  • 0.2.2-beta.10                                ...           3 years ago
  • 0.2.2-beta.9                                ...           3 years ago
  • 0.2.2-beta.8                                ...           3 years ago
  • 0.2.2-beta.7                                ...           3 years ago
  • 0.2.2-beta.6                                ...           3 years ago
  • 0.2.2-beta.5                                ...           3 years ago
  • 0.2.2-beta.4                                ...           3 years ago
  • 0.2.2-beta.3                                ...           3 years ago
  • 0.2.2-beta.2                                ...           3 years ago
  • 0.2.2-beta.1                                ...           3 years ago
  • 0.2.3                                ...           3 years ago
  • 0.2.2                                ...           4 years ago
  • 0.1.7-beta.1                                ...           4 years ago
  • 0.2.1                                ...           4 years ago
  • 0.2.0                                ...           4 years ago
  • 0.1.7                                ...           4 years ago
  • 0.1.6                                ...           4 years ago
  • 0.1.5                                ...           4 years ago
  • 0.1.4-beta.15                                ...           4 years ago
  • 0.1.4-beta.14                                ...           4 years ago
  • 0.1.4-beta.13                                ...           4 years ago
  • 0.1.4-beta.12                                ...           4 years ago
  • 0.1.4-beta.11                                ...           4 years ago
  • 0.1.4-beta.10                                ...           4 years ago
  • 0.1.4-beta.9                                ...           4 years ago
  • 0.1.4-beta.8                                ...           4 years ago
  • 0.1.4-beta.7                                ...           4 years ago
  • 0.1.4-beta.6                                ...           4 years ago
  • 0.1.4-beta.5                                ...           4 years ago
  • 0.1.4-beta.4                                ...           4 years ago
  • 0.1.4-beta.3                                ...           4 years ago
  • 0.1.4-beta.2                                ...           4 years ago
  • 0.1.4-beta.1                                ...           4 years ago
  • 0.1.4                                ...           4 years ago
  • 0.1.3                                ...           4 years ago
  • 0.1.2                                ...           4 years ago
  • 0.1.1-beta.1                                ...           4 years ago
  • 0.1.1                                ...           4 years ago
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (5)
Dev Dependencies (0)
None
Dependents (0)
None

Copyright 2013 - present © cnpmjs.org