如何使用 webpack 从包中排除 mobx 和 mobx-react

How to exclude mobx and mobx-react from the bundle using webpack

我想将它们从捆绑包中排除,以便浏览器缓存它们。我在 webpack.config.js 中尝试了这个和一些变体但没有成功。 react 和 react-dom 工作正常。

externals: {
    "react": "React",
    "react-dom": "ReactDOM",
    'mobx': "observable",
    'mobx-react': "observer"
},

我将它们带入我的 index.html

<script src="./node_modules/mobx/lib/mobx.umd.js"></script>
<script src="./node_modules/mobx-react/index.js"></script> 

我收到这个错误:

observable is not defined

感谢您的帮助。

当您全局包含 mobx 时,您必须从全局 mobx 变量访问 observable

class MyStore {
  @mobx.observable prop = [];
}

或:

var observable = mobx.observable;

class MyStore {
  @observable prop = [];
}

如果您不想在两个月后让阅读您的代码的任何人或您自己感到非常困惑,请使用外部导入库而不是特定的函数:)

externals: {
    "react": "React",
    "react-dom": "ReactDOM",
    'mobx': "mobx",
    'mobx-react': "mobxReact"
}