Как исключить mobx и mobx-react из пакета с помощью 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

Спасибо за вашу помощь.


person workerbee    schedule 22.11.2016    source источник


Ответы (2)


Если вы не хотите сильно запутать кого-либо, читающего ваш код, или себя через два месяца, используйте внешние для импорта библиотеки вместо конкретных функций :)

externals: {
    "react": "React",
    "react-dom": "ReactDOM",
    'mobx': "mobx",
    'mobx-react': "mobxReact"
}
person mweststrate    schedule 22.11.2016
comment
Спасибо! Меня смутил внешний синтаксис. Похоже, это имя-библиотеки: имя-глобальной-переменной. И все же я не нахожу ни глобальную переменную mobx, ни mobxReact. Кто-нибудь знает? - person workerbee; 03.02.2017

Когда вы включаете mobx глобально, вам нужно получить доступ к observable из глобальной переменной mobx:

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

or:

var observable = mobx.observable;

class MyStore {
  @observable prop = [];
}
person Mouad Debbar    schedule 22.11.2016