# umi-plugin-mobx-state-tree

> use mobx-state-tree with umi@2.

Latest version **0.0.1** (published 2018-10-23) · MIT license · 0 weekly downloads

## Install

```sh
npm install umi-plugin-mobx-state-tree
pnpm add umi-plugin-mobx-state-tree
yarn add umi-plugin-mobx-state-tree
bun add umi-plugin-mobx-state-tree
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2018-10-23 |
| First published | 2018-10-12 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 10 |
| Unpacked size | 24.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 22 |
| Maintainers | xiaohuoni |

## Links

- npm: https://www.npmjs.com/package/umi-plugin-mobx-state-tree
- Repository: https://github.com/umijs/umi-plugin-mobx-state-tree
- Homepage: https://github.com/umijs/umi/umi-plugin-mobx-state-tree
- Issues: https://github.com/umijs/umi-plugin-mobx-state-tree/issues
- npm.io page: https://npm.io/package/umi-plugin-mobx-state-tree

## Dependencies (10)

- [mobx](https://npm.io/package/mobx.md) ^5.5.0
- [globby](https://npm.io/package/globby.md) ^7.1.1
- [mobx-react](https://npm.io/package/mobx-react.md) ^5.2.8
- [lodash.uniq](https://npm.io/package/lodash.uniq.md) ^4.5.0
- [path-is-root](https://npm.io/package/path-is-root.md) ^0.1.0
- [object-assign](https://npm.io/package/object-assign.md) ^4.1.1
- [path-to-regexp](https://npm.io/package/path-to-regexp.md) ^1.7.0
- [mobx-state-tree](https://npm.io/package/mobx-state-tree.md) ^3.5.0
- [mobx-devtools-mst](https://npm.io/package/mobx-devtools-mst.md) ^0.9.18
- [mobx-react-devtools](https://npm.io/package/mobx-react-devtools.md) ^6.0.3

## Recent versions

- 0.0.1 (latest) — 2018-10-23
- 3.0.0-beta.2 (next) — 2020-05-09
- 3.0.0-beta.1 — 2020-05-09
- 0.0.1-beta.4 — 2018-10-18
- 0.0.1-beta.3.1 — 2018-10-18
- 0.0.1-beta.3 — 2018-10-13
- 0.0.1-beta.2 — 2018-10-12
- 0.0.1-beta.1 — 2018-10-12

## README

# umi-plugin-mobx-state-tree

umi@2 的 mobx 插件。

约定加载 src/stores 下的所有文件(可通过设置 exclude 排除某些文件)

默认开启按需加载，build 之后根据路由添加 pages 下的 stores 文件(可通过设置 [dynamicImport](https://umijs.org/zh/plugin/umi-plugin-react.html#dynamicimport) 关闭)

所有store全部加载到统一的store对象上，默认取文件名作为inject查找的对象名。
```
inject(({stores}) => ({
    list: stores.list
}))(observer(App));

注意：这里的list，实际上是stores.stores.list
```

由于umi默认加载pages下面的文件生成路由，所以要通过设置[routes/exclude](https://umijs.org/zh/plugin/umi-plugin-react.html#routes)来把stores排除
```js
routes: {
  exclude: [/stores\//],
},
```
## 快速使用
安装
```
$ npm i umi-plugin-mobx-state-tree
```
.umirc.js

```js
export default {
  plugins: ["umi-plugin-mobx-state-tree"]
};
```

## 支持配置

```js
export default {
  plugins: [
    [
      "umi-plugin-mobx-state-tree",
      {
        exclude: [/^\$/] //这里是以$开头的stores不会被引用
      }
    ]
  ]
};
```

exclude:提供 src/stores 下的文件不被注册的功能，比如加上$前缀就不会被注册了,值为正则表达式


## /src/mobx.js
可以通过src/mobx.js配置初始值和开启mobx-react-devtools调试工具
```
export function config() {
  return {
    devTools: true,
    mstTools: false,
    initStores: {
      list: {
        name: "init list name"
      }
    }
  };
}
```
可以通过设置``mstTools: true``开启mobx-devtools-mst，这个功能需要依赖[mobx浏览器调试工具](https://github.com/mobxjs/mobx-devtools/blob/master/README.md#features)使用。

这个配置可以通过runtime修改。

[examples codesandbox](https://codesandbox.io/s/zw15r4yrrl)

---
_Source: https://npm.io/package/umi-plugin-mobx-state-tree · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
