新しい React Native プロジェクト (0.57.4) を初期化し、 Metroreact-native initバンドラーをプログラムで実行しようとしています。ただし、 React Native ソースの最初のモジュールであるReact Native の内部モジュール (例: ) を解決できません。AccessibilityInforequire
Error: Unable to resolve module `AccessibilityInfo` from `/myproject/node_modules/react-native/Libraries/react-native/react-native-implementation.js`: Module `AccessibilityInfo` does not exist in the Haste module map
キャッシュをクリアするための指示に従っても役に立ちません。
Metroバンドラーをプログラムで実行するために使用しているコードは次のとおりです。
const path = require('path')
const metro = require('metro')
const entry = './index.js'
const out = './build/index.bundle'
const platform = 'ios'
const root = process.cwd()
build()
async function build() {
const config = {
resolver: {
providesModuleNodeModules: ['react-native'],
},
transformer: {
babelTransformerPath: require.resolve('metro/src/reactNativeTransformer'),
},
serializer: {},
server: {},
projectRoot: root,
watchFolders: [root, path.join(__dirname, 'node_modules', 'metro')],
}
const opts = { dev: false, entry, optimize: true, out, platform, sourceMap: true }
return await metro.runBuild(config, opts)
}
ヘッダー コメントMetroでマークされた React Natives モジュールを解決できるようにする設定が不足している可能性があります。@providesModule