为什么 yarn 安装了不同的 redux-multi 包?

Why there is a different redux-multi package installed with yarn?

由于 npm 存在一些性能问题,我已切换到 yarn 包管理器。 一切顺利,但 redux-multinpm 不一样。 有谁之前经历过这个吗?最好的解决方案应该是什么?我真的不想更新我的应用程序代码。

纱线:

function multi(_ref) {
  var dispatch = _ref.dispatch;

  return function (next) {
    return function (action) {
      return Array.isArray(action) ? Promise.all(action.filter(Boolean).map(function (p) {
        return dispatch(p);
      })) : next(action);
    };
  };
}

Npm:

function multi(_ref) {
  var dispatch = _ref.dispatch;

  return function (next) {
    return function (action) {
      return Array.isArray(action) ? action.filter(Boolean).map(dispatch) : next(action);
    };
  };
}

注意区别:yarn 版本使用 Promise.

您提到您的 package.json 文件使用 ^0.1.12,这意味着“与 0.1.12.

兼容的任何版本

yarnnpm 的基础上增加了另一层可靠性,旨在保护其他开发人员免于跨环境安装不同的兼容版本。

我会检查您的 yarn.lock 文件并确保它也具有您希望安装的版本(对比 npm)。

就个人而言,我总是在这种情况下固定我的要求(只使用特定版本而不是其中一个修饰符)。