Требовать () разрешение в React Native - PullRequest
0 голосов
/ 13 октября 2019

Я пытаюсь выяснить, почему require('foo/bar.png') работает по-разному в двух проектах RN

В одном проекте foo регистрируется как root с помощью metro.config.js

  extraNodeModules: {
    foo: path.join(__dirname, 'src/foo'),
  }

В другом проекте foo находится под app_root / node_modules

so foo is at app_root/node_modules/foo

Так что в обоих проектах я могу сделать import something from 'foo/something'

Но когда дело доходит до require, два проекта ведут себя по-разному..


Есть строка в foo/components/hello.js

 require('foo/assets/image.png')

В первом проекте файл изображения правильно найден,

Но второй проект жалуетсячто он не может найти с ошибкой /path/to/root_project/node_modules/foo/component/node_modules/foo/assets/image.png

Кажется, что require предполагает, что при вызове require должен быть корень проекта или что-то в этом роде.

Гдемне искать или как это отладить?

Можно ли напечатать module.paths в проекте ReactNative?

Ответы [ 2 ]

0 голосов
/ 14 октября 2019

путь одинаков для обоих проектов? Если в первом проекте require () работает, то это должно работать во втором проекте, одна из причин не работает, что ваш путь неверен во втором проекте. Поэтому проверьте это снова.

0 голосов
/ 13 октября 2019

Require не является оператором React - это оператор Node.js, вместо него используйте import.

...