Miragejs 种子函数未调用

mcc*_*una 3 javascript reactjs miragejs

我正在尝试设置 Miragejs 服务器,但由于某种原因,该seeds函数未被调用。routes调用另一个服务器函数并正确映射路由。

export default function makeServer({ environment = 'test' } = {}) {
  return new Server({
    environment,

    models: {
      user: Model,
      diary: Model,
    },

    seeds(server) {
      debugger; // not hit
      seedUsers(server);
      seedDiaries(server);
    },

    routes() {
      debugger; // hit
      this.namespace = 'api';
      this.get('/users', (schema) => schema.users.all());
      this.get('/diaries', (schema) => {
        debugger; // hit
        schema.diaries.all();
      });
    },
  });
}
Run Code Online (Sandbox Code Playgroud)

我已尝试复制粘贴提供的示例,但该seeds方法仍然没有被调用。

miragejs 包作为开发包安装,使用的版本是 0.1.40。该makeServer函数在 index.jsx 文件中调用如下:

if (process.env.NODE_ENV === 'development') {
  makeServer();
}

ReactDOM.render(
  <Provider store={store}>
    <ConnectedRouter history={history}>
      <App />
    </ConnectedRouter>
  </Provider>,
  // eslint-disable-next-line no-undef
  document.getElementById('root'),
);

Run Code Online (Sandbox Code Playgroud)

mcc*_*una 5

makeServer将函数的参数更改environmentdevelopment或完全删除它(默认为development)可以解决该问题。似乎在使用test环境时,该seeds方法被忽略(source)。