Я смог решить эту проблему благодаря удивительным людям в этой теме: https://github.com/facebook/metro/issues/1#issuecomment-462981541
Эта ссылка должна идти прямо к моему сообщению о том, как я решил эту проблему.
Iопубликует вставку ниже, если вы не хотите переходить к теме проблемы, хотя некоторые другие публикации в этой теме определенно хорошо понимают.
@ th317erd Я смог заставить ее работать!Благодаря тонну!
наблюдатель также работает как шарм!Когда я что-то изменяю в папке темы, приложение expo перезагрузится на моем телефоне - очень круто.
Моя структура выглядит следующим образом ( показывает только важные файлы ): my-app/
и themes/
находятся в одном каталоге.
/User/me/workspace/my-project/
|
+--my-app/
|
+-- App.js
+-- package.json
+-- rn-cli-config.js
+-- (etc project files)
|
+--themes/
|
+-- native-base-theme
|
+-- components
|
+-- index.js (compiles everything to one export)
+-- package.json (created with 'npm init')
|
+-- variables
|
+-- platform.js (exports theme variables I am using/modifying)
+-- package.json (created with 'npm init')
themes/native-base-theme/components/package.json
: установить точку входа на index.js
, установив клавишу "main"
.
{
"name": "custom-theme-components",
"version": "1.0.0",
"description": "custom-theme-components",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
themes/native-base-theme/variables/package.json
: установить точку входа на platform.js
, установив клавишу "main"
.
{
"name": "custom-theme-variables",
"version": "1.0.0",
"description": "custom-theme-variables",
"main": "platform.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
In my-app
s package.json
:
"dependencies": {
...
"custom-theme-components": "file:../themes/native-base-theme/components",
"custom-theme-variables": "file:../themes/native-base-theme/variables",
},
App.js
:
import getTheme from 'custom-theme-components';
import variables from 'custom-theme-variables'
...
render() {
return (
<Root>
<StyleProvider style={getTheme(variables)}>
<AppContainer />
</StyleProvider>
</Root>
);
}
...
rn-cli.config.js
вставлено непосредственно из комментария @ joerneu от 11 января: https://github.com/facebook/metro/issues/1#issuecomment-453649261
Затем мне пришлось выполнить четыре шага для общих модулей Hasteошибка до правильной компиляции:
$ watchman watch-del-all
$ rm -rf node_modules && npm install
$ rm -rf /tmp/metro-bundler-cache-*
$ rm -rf /temp/haste-map-react-native-packager-*
после этого $ expo start
, и она заработала <3 </p>
Я, вероятно, вернусь и немного ее почистю.может просто объединить их в один красивый модуль и удалить один из шагов вниз в каталог.