Я использую этот плагин gradle node в моем проекте Android, чтобы просто установить все зависимости в папке package.json
в node_modules
. npmInstall
задача gradle справляется с этим, и я хотел бы запускать эту задачу всякий раз, когда перестраиваю свой проект Android. Поскольку npmInstall
является задачей проекта корневого уровня, я написал ниже код для моей задачи gradle уровня приложения, которая будет зависеть от задачи npmInstall
:
afterEvaluate {
android.productFlavors.all {
flavor ->
android.applicationVariants.all { variant ->
tasks.findByName("compile${flavor.name.capitalize()}${variant.buildType.name.capitalize()}Kotlin").dependsOn tasks.findByName('npmInstall')
}
}
}
Это сделает мою задачу compileFreeDebugKotlin
gradle уровня приложениязависеть от задачи npmInstall
, и когда я перестраиваю проект, я вижу, что папка node_modules
создана и установлены зависимости. Тем не менее, он не компилируется, я получил исключение ниже:
e: /.../BaseRNActivity.kt: (10, 34): Unresolved reference: LifecycleState
e: /.../BaseRNActivity.kt: (41, 29): Unresolved reference: setJSMainModulePath
e: /.../BaseRNActivity.kt: (53, 48): Unresolved reference: addPackages
e: /.../BaseRNActivity.kt: (59, 39): Unresolved reference: LifecycleState
e: /.../BaseRNActivity.kt: (80, 31): Unresolved reference: onHostPause
e: /.../BaseRNActivity.kt: (85, 31): Unresolved reference: onHostResume
e: /.../BaseRNActivity.kt: (89, 24): Unresolved reference: unmountReactApplication
e: /.../BaseRNActivity.kt: (91, 31): Unresolved reference: onHostDestroy
Интересно, что если у меня есть эта папка node_modules
до того, как я пересоберу проект, то все в порядке.
Я думаю, проблема в том, что любая задача-грейдер на уровне приложения не ждет загрузки зависимостей. Как я могу заставить свою любую задачу на уровне приложения ждать результата npmInstall
? Заранее спасибо.