【问题标题】:How to exclude mobx and mobx-react from the bundle using webpack如何使用 webpack 从包中排除 mobx 和 mobx-react
【发布时间】:2016-11-22 00:00:39
【问题描述】:

我想将它们从捆绑包中排除,以便它们可以被浏览器缓存。我在 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

感谢您的帮助。

【问题讨论】:

    标签: reactjs webpack mobx mobx-react


    【解决方案1】:

    如果您不想在两个月后让阅读您的代码的其他人或您自己高度困惑,请使用外部导入 lib 而不是特定的 func :)

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

    【讨论】:

    • 谢谢!我一直对外部语法感到困惑。看起来它是库名称:全局变量名称。但是我没有找到全局变量 mobx 和 mobxReact。有人知道吗?
    【解决方案2】:

    当您在全局范围内包含mobx 时,您必须从全局mobx 变量中访问observable

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

    或:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 2019-08-15
      • 1970-01-01
      • 1970-01-01
      • 2021-01-29
      • 2020-08-24
      • 1970-01-01
      • 2020-09-01
      相关资源
      最近更新 更多